問題タブ [reactive-cocoa]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - CocoaPods を使用して ReactiveCocoa を適切にインストールするには?
私はに非常に新しいですReactiveCocoa
。ReactiveCocoa
数日前に経由でインストールしようとしましたCocoaPods
。これが私のものpodFile
です:
使用後pod install
、ここにログファイルがあります:
依存関係の分析
依存関係のダウンロード
ReactiveCocoa (2.0) の使用
Pods プロジェクトの生成
クライアント プロジェクトの統合
そして、フレームワークを開いmyproject.xworkspace
て#import <ReactiveCocoa.h>
使用を開始します。
しかし、問題は私がそれを働かせることができないということです
たとえば、私のコードには次の行があります。
objc
RACSignal *usernameSignal = self._usernameTextField.rac_textSignal;
しかし、プロジェクトを実行すると、このデバッグエラーが表示されました
キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[UITextField rac_textSignal]: 認識されないセレクターがインスタンス 0xb933a70 に送信されました'
ここでフレームワークのインストールに何か問題があるのではないかと思いました。誰でも私を助けてください!
私は使用していますXCode5 and iOS7.0
reactive-cocoa - 副作用のあるデリゲート メソッドの再活性化へのアプローチ
特定の状況に対する ReactiveCocoa のアプローチに頭を悩ませようとしています。
セグメント コントローラーが子ビュー コントローラーを交換する状況があります。ここでいくつかのことを達成する必要があります。
- 親コントローラーに移動したら、iOS7 がカスタム コンテナー ビューでそれを処理しないため、
contentInset
のを更新する必要があります。tableView
- 検索が開始されたら、ナビゲーション バーをフェードさせ、
contentInset
アニメーションで更新する必要があります - 検索が終了したら、フェードインしてアニメーション
navigationBar
でリセットする必要がありますcontentInset
これを命令型スタイルで実現する現在のコードは次のとおりです。
挿入されたものの一部を引き出すようにリファクタリングできますが、この演習ではフラットに保ちます。
以下の回答として、「自分が何をしているのかほとんどわからない」アプローチを投稿します。
部分的な回答
わかりましたので、情報のストリームを関連するシグナルに引き出そうとしています。
基本的に私は知る必要があります:
- 私は現在探していますか?
- この場合の my
contentInset
(top)の現在の値
だから私のアプローチは
- 現在検索しているかどうかの RACSubject を作成します
self.currentlySearchingSignal
。 - myの
top
値をtableView.contentInset
シグナルに変換する sendNext:@(YES)
currentlySearchingSignal
いつ呼び出されるsearchBarShouldBeginEditing
か (そしていつ YES が返されるか)sendNext:@(NO)
currentlySearchingSignal
いつ呼び出されるsearchBarShouldEndEditing
か (そしていつ YES が返されるか)- ...
私は立ち往生しています。どういうわけかこれらを組み合わせる/サブスクライブする必要があることはわかっていますが、状態以外の方法で考えようとしています。
- 親 VC に追加され、
contentInset.top
まだ適切に設定されていない場合 (topLayoutGuide
)、アニメーションなしで設定する必要があります。 - 検索し、
contentInset.top
適切に設定されていない場合 (ステータス バー フレーム)、アニメーションを実行する必要があります (その後、アニメーションが完了するまでこれを更新しません)。 - 検索せず、
contentInset.top
適切に設定されていない場合 (topLayoutGuide
) アニメーションを実行する必要がある (アニメーションが完了するまで更新しない)
それを解決しようとしている
これが私のスタートです。#1を解決しようとしていますが、まだ機能していません。
objective-c - リアクティブ NSMutableDictionary?
ReactiveCocoa を使用して NSMutableDictionary に追加および削除されるオブジェクトをサブスクライブするにはどうすればよいですか? また、変更時に通知をブロードキャストしたいと思います。私の推測では、ブロードキャストは RACMulticastConnection を使用して実行できますが、これを辞書の変更とどのように結びつけることができますか? 私は自分のプロジェクトで初めてReactiveCocoaを使用しようとしていますが、最初にやりたかったことに固執しています:(
objective-c - ReactiveCocoaとシグナルのシグナルで「最新を組み合わせる」
ReactiveCocoaでシグナルのシグナルに「最新の結合」を実装するための最良のアプローチは何ですか? 次の問題があります。
N 個のテキスト フィールドを指定して、UIControlEditingEventChanged
イベントをサブスクライブし、呼び出された値に基づいて新しいシグナルを作成します。サブスクリプションはサブスクライバーごとに 1 回行われ、値は相互に組み合わせて使用されます。だからここに私が持っているものがあります:
rac_validationSignal
UITextFields の検証を処理する独自のクラスはどこにありますか。信号は正しく通過しますが、一度に 1 つだけです。編集されたすべてのフィールドの有効性を得るために、一度にすべてのサブスクリプションの値が必要です。
編集:
考えられる解決策の 1 つは、通常どおりに新しいフィールドを追加して組み合わせシグナルを送信する可変配列を使用することです。これはかなり良さそうですが、他に何かアイデアはありますか?
ありがとう!
core-data - RACSequence のフィルタリングが期待どおりに機能しない
ReactiveCocoa を使用して取得したオブジェクトの配列を更新しようとしていますが、削除された結果を除外したいと考えています。物事が正しく機能しているようには見えません — trackSequence でfilter
それぞれが渡されることを期待していますNSManagedObject
が、代わりに_PFBatchFaultingArray
オブジェクトが表示されます。
誰かが私が間違っていることに光を当てることができますか? ありがとう!
objective-c - RACSignal を BOOL 変数に再バインドする方法は?
Node を基本クラスとするツリーベースのデータ構造があります。
親のノードの切り離された変数が YES の場合、子の同じプロパティが YES になる必要があります。この動作は、次のコードでモデル化されています。
親が変更されているときに、切り離されたプロパティを再バインドするにはどうすればよいですか? その場合、何もしないとクラッシュします。
ここで議論を見つけましたが、私の場合に解決策を採用する方法を理解できません。
ios - RACCommand のブロックがシグナルを返すのはなぜですか?
私はReactiveCocoaRACCommand
について多くのことを学んできましたが、まだ 1 つ困惑しています: シグナル ブロックがシグナル自体を返すのはなぜですか?
RACCommand
、そのcanExecute
シグナルとシグナル ブロックの使用例、および UI 要素に接続する方法を理解しています。しかし、 以外のものを返す場合はどのような場合があるでしょう[RACSignal empty]
か?
ios - リアクティブ ココアを使用して UITouches を観察しますか?
私は反応性ココアにかなり慣れていないので、私が構築しようとしているゲームに FRP の要素を含めようとしています。オンラインで検索したところ、Reactive cocoa のリソースとドキュメントは非常に限られており、ほとんどのチュートリアルで同じ例が使用されています。
私がやりたいことは、ビューの現在のタッチの値のストリームを提供する RACSignal を持つことです (簡単にするためにマルチタッチはないと仮定します)。そして、subscribeNext を使用して、UITouch オブジェクトが変更されたときにアクションを実行します。RAC 信号自体の設定に問題があります。
現在、次のことを行っています(これが正しい方法かどうかはわかりません!)
しかし、RACSignal がゲームのクラッシュを初期化しようとするたびに、次のメッセージが表示されます。
私は何を間違っていますか?RACSignal をセットアップする正しい方法は何ですか? また、別のオブジェクト (おそらく MyView モデル) で touchSignal を使用し、サブスクライブを使用してブロック内の操作を実行するにはどうすればよいですか?