問題タブ [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.

0 投票する
1 に答える
4805 参照

ios - CocoaPods を使用して ReactiveCocoa を適切にインストールするには?

私はに非常に新しいですReactiveCocoaReactiveCocoa数日前に経由でインストールしようとしました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

0 投票する
1 に答える
2639 参照

reactive-cocoa - 副作用のあるデリゲート メソッドの再活性化へのアプローチ

特定の状況に対する ReactiveCocoa のアプローチに頭を悩ませようとしています。

セグメント コントローラーが子ビュー コントローラーを交換する状況があります。ここでいくつかのことを達成する必要があります。

  1. 親コントローラーに移動したら、iOS7 がカスタム コンテナー ビューでそれを処理しないため、contentInsetのを更新する必要があります。tableView
  2. 検索が開始されたら、ナビゲーション バーをフェードさせ、contentInsetアニメーションで更新する必要があります
  3. 検索が終了したら、フェードインしてアニメーションnavigationBarでリセットする必要がありますcontentInset

これを命令型スタイルで実現する現在のコードは次のとおりです。

挿入されたものの一部を引き出すようにリファクタリングできますが、この演習ではフラットに保ちます。

以下の回答として、「自分が何をしているのかほとんどわからない」アプローチを投稿します。

部分的な回答

わかりましたので、情報のストリームを関連するシグナルに引き​​出そうとしています。

基本的に私は知る必要があります:

  1. 私は現在探していますか?
  2. この場合の my contentInset(top)の現在の値

だから私のアプローチは

  1. 現在検索しているかどうかの RACSubject を作成しますself.currentlySearchingSignal
  2. myのtop値をtableView.contentInsetシグナルに変換する
  3. sendNext:@(YES)currentlySearchingSignalいつ呼び出されるsearchBarShouldBeginEditingか (そしていつ YES が返されるか)
  4. sendNext:@(NO)currentlySearchingSignalいつ呼び出されるsearchBarShouldEndEditingか (そしていつ YES が返されるか)
  5. ...

私は立ち往生しています。どういうわけかこれらを組み合わせる/サブスクライブする必要があることはわかっていますが、状態以外の方法で考えようとしています。

  1. 親 VC に追加され、contentInset.topまだ適切に設定されていない場合 ( topLayoutGuide)、アニメーションなしで設定する必要があります。
  2. 検索し、contentInset.top適切に設定されていない場合 (ステータス バー フレーム)、アニメーションを実行する必要があります (その後、アニメーションが完了するまでこれを更新しません)。
  3. 検索せず、contentInset.top適切に設定されていない場合 ( topLayoutGuide) アニメーションを実行する必要がある (アニメーションが完了するまで更新しない)

それを解決しようとしている

これが私のスタートです。#1を解決しようとしていますが、まだ機能していません。

0 投票する
2 に答える
1359 参照

objective-c - リアクティブ NSMutableDictionary?

ReactiveCocoa を使用して NSMutableDictionary に追加および削除されるオブジェクトをサブスクライブするにはどうすればよいですか? また、変更時に通知をブロードキャストしたいと思います。私の推測では、ブロードキャストは RACMulticastConnection を使用して実行できますが、これを辞書の変更とどのように結びつけることができますか? 私は自分のプロジェクトで初めてReactiveCocoaを使用しようとしていますが、最初にやりたかったことに固執しています:(

0 投票する
1 に答える
1458 参照

objective-c - ReactiveCocoaとシグナルのシグナルで「最新を組み合わせる」

ReactiveCocoaでシグナルのシグナルに「最新の結合」を実装するための最良のアプローチは何ですか? 次の問題があります。

N 個のテキスト フィールドを指定して、UIControlEditingEventChangedイベントをサブスクライブし、呼び出された値に基づいて新しいシグナルを作成します。サブスクリプションはサブスクライバーごとに 1 回行われ、値は相互に組み合わせて使用​​されます。だからここに私が持っているものがあります:

rac_validationSignalUITextFields の検証を処理する独自のクラスはどこにありますか。信号は正しく通過しますが、一度に 1 つだけです。編集されたすべてのフィールドの有効性を得るために、一度にすべてのサブスクリプションの値が必要です。

編集:

考えられる解決策の 1 つは、通常どおりに新しいフィールドを追加して組み合わせシグナルを送信する可変配列を使用することです。これはかなり良さそうですが、他に何かアイデアはありますか?

ありがとう!

0 投票する
1 に答える
481 参照

core-data - RACSequence のフィルタリングが期待どおりに機能しない

ReactiveCocoa を使用して取得したオブジェクトの配列を更新しようとしていますが、削除された結果を除外したいと考えています。物事が正しく機能しているようには見えません — trackSequence でfilterそれぞれが渡されることを期待していますNSManagedObjectが、代わりに_PFBatchFaultingArrayオブジェクトが表示されます。

誰かが私が間違っていることに光を当てることができますか? ありがとう!

0 投票する
1 に答える
3151 参照

objective-c - RACSignal を BOOL 変数に再バインドする方法は?

Node を基本クラスとするツリーベースのデータ構造があります。

親のノードの切り離された変数が YES の場合、子の同じプロパティが YES になる必要があります。この動作は、次のコードでモデル化されています。

親が変更されているときに、切り離されたプロパティを再バインドするにはどうすればよいですか? その場合、何もしないとクラッシュします。

ここで議論を見つけましたが、私の場合に解決策を採用する方法を理解できません。

0 投票する
4 に答える
5078 参照

ios - RACCommand のブロックがシグナルを返すのはなぜですか?

私はReactiveCocoaRACCommandについて多くのことを学んできましたが、まだ 1 つ困惑しています: シグナル ブロックがシグナル自体を返すのはなぜですか?

RACCommand、そのcanExecuteシグナルとシグナル ブロックの使用例、および UI 要素に接続する方法を理解しています。しかし、 以外のものを返す場合はどのような場合があるでしょう[RACSignal empty]か?

0 投票する
1 に答える
1679 参照

ios - リアクティブ ココアを使用して UITouches を観察しますか?

私は反応性ココアにかなり慣れていないので、私が構築しようとしているゲームに FRP の要素を含めようとしています。オンラインで検索したところ、Reactive cocoa のリソースとドキュメントは非常に限られており、ほとんどのチュートリアルで同じ例が使用されています。

私がやりたいことは、ビューの現在のタッチの値のストリームを提供する RACSignal を持つことです (簡単にするためにマルチタッチはないと仮定します)。そして、subscribeNext を使用して、UITouch オブジェクトが変更されたときにアクションを実行します。RAC 信号自体の設定に問題があります。

現在、次のことを行っています(これが正しい方法かどうかはわかりません!)

しかし、RACSignal がゲームのクラッシュを初期化しようとするたびに、次のメッセージが表示されます。

私は何を間違っていますか?RACSignal をセットアップする正しい方法は何ですか? また、別のオブジェクト (おそらく MyView モデル) で touchSignal を使用し、サブスクライブを使用してブロック内の操作を実行するにはどうすればよいですか?