問題タブ [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 に答える
1228 参照

ios - RACSignal 間隔がすぐに機能しない

ReactiveCocoa の RACSignal クラスの interval メソッドを使用しようとしています。次のコードは、1 秒後に毎秒動作します。しかし、私はそれがすぐにそして毎秒動作することを望んでいます。最善の方法は何ですか?

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

ios - Gesture Recognizer で ReactiveCocoa を使用する方法

ReactiveCocoa を使用してアプリケーションを構築しています。トップビューは、プルダウンしてからプッシュアップできるメニューです。2 つの異なるジェスチャ認識機能を使用する必要があります。1 つは引き下げるため、もう 1 つは押し戻すためです。一度に有効にできるのは 1 つだけです。そこに私の問題があります。州。

BlocksKit 拡張機能を使用してジェスチャ認識エンジンをセットアップしています。

私のinitWithNibName:bundle:方法では、次の s を設定していますRACSubject

ここでは多くのことが起こっています。この問題は、ここに挙げたサブジェクトの数のほぼ 2 倍 (パンアップ ジェスチャ レコグナイザーのサブジェクトも含む)と、フッターとの同様の相互作用のためのレコグナイザーの別のセットを持っているという事実によって悪化します。それは多くの科目です。

私の質問は2つの部分に分かれています:

  1. 私が望む種類の連鎖を設定するためのより良い方法はありますか? 腕立て伏せのジェスチャーでもいくつかの被写体を再利用していますが、これは非常によく似ています。私はたくさん持っていて、RACSubjectsジャンキーに見えます。
  2. menuFinishedTransitionSubject基本的に、ジェスチャ レコグナイザの状態を管理するために使用されます。私は彼らの財産を束縛しようとしましたenabledが、運がありませんでした。ここで何かアドバイスはありますか?
0 投票する
2 に答える
2984 参照

ios - ReactiveCocoa を使用して、1 時間ごとにアクションを実行します

ReactiveCocoa のベスト プラクティスに従って、1 時間ごとに UI を更新しようとしています。これは私が持っているものです:

これにはいくつかの明らかな欠陥があります: 手動のサブスクリプションと送信であり、単に「気分が悪い」だけです。これをより「反応的」にする方法についてのアイデアはありますか?

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

ios - KVO 通知での断続的なクラッシュ

何が起こっているのか: シングルトンがデバイスのイベント ストアの変更を監視しています。eventsでラップしたというプロパティがありますeventsSignal RACSignal

アプリケーションの起動が完了すると、requestAccessToEntityType:completion:. 完了ブロックはバックグラウンド キューで実行されるため、メイン キューにディスパッチします。

への呼び出し[self refresh]は、イベント ストアから新しいイベントをロードし、次に呼び出します

この行で、アプリがクラッシュします。

完全なスタック トレースは以下のとおりです。ディスパッチ呼び出しを削除しようとしましたが、常に_eventSignalメイン スレッド スケジューラでスケジュールを設定し、イベント シグナルをサブスクライブしているすべての場所を調べました (すべて問題ないようです)。私が見逃しているものはありますか?

編集:次のコードで問題を特定しました。がサブスクライブされている場合、nextEventSignal約半分の確率でクラッシュが発生します。呼び出しから 2 番目のシグナルを削除してcombineLatest:reduceも、クラッシュしません。

これがクラッシュログです。

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

objective-c - ReactiveCocoa を使用して NSSet オブジェクト数に応じてボタンを有効にする

NSMutableSet インスタンス内のオブジェクトの数が 0 より大きいかどうかに応じて、ReactiveCocoa を使用してボタンを有効にしようとしています。

次のコードを使用していますが、実行時にクラッシュが発生しています。何か案は?

'NSInvalidArgumentException'、理由: '-[__NSSetM マップ:]: 認識されないセレクターがインスタンス 0x9671d10 に送信されました'

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

objective-c - モデルの永続性をトリガーするために ReactiveCocoa を使用することは理にかなっていますか?

私はリアクティブの世界に頭を入れようとしていますが、ベストプラクティスに関してはまだ理解が不十分です。ReactiveCocoa は、MVC の VC 側で最も多く使用されているようです。モデル内で使用する方法を探していました。

現在の私の考えは、モデル オブジェクトに ' saveRequests 'と呼ばれるRACSubjectプロパティを設定することです。モデル オブジェクトで何かが変更されると、そのsaveRequestsプロパティで ' sendNext :' が呼び出されます... 基本的に自分自身をダーティとしてマークします。

AppDelegateでは、親モデル オブジェクトのsaveRequestsシグナルをサブスクライブし、次のシグナルでディスクに保存します (ディスク操作の過負荷を避けるために 2 秒ごとにバッファリングします)。これは機能しているように見えますが、saveRequest シグナルをカスケードすることでさらに進めたいと考えました。

他のモデル オブジェクトの配列を所有するモデル オブジェクトがあります。これらのオブジェクトの 1 つが saveRequest シグナルをトリガーすると、親オブジェクトがその saveRequest シグナルをトリガーするようにします。子オブジェクトが追加されたときに親が各子オブジェクトをサブスクライブすることで、これが機能します。

ただし、子モデルオブジェクトが親から削除された場合、親が子からのそれ以上のsaveRequestsからサブスクライブを解除するようにします-子オブジェクトが割り当て解除された場合にのみ自動的にサブスクライブが解除されることを理解しています(子供は何か他のものにつかまっている)。

それで、いくつか質問があります:

  • モデルが自分自身をダーティーとしてマークし、持続性をトリガーする方法として、これは賢明なアイデアでしょうか?
  • RACSubjectを使用するのはおそらく最適ではないことを読みましたが、代わりにRACSignalを使用する必要がありますか? また、その理由は?
  • 各子オブジェクトからサブスクライブを解除するには、 RACDisposableを使用する必要がありますよね? シグナルをサブスクライブするときに返されるものを使用する唯一の方法ですか?その場合、親オブジェクトでそれを保持する必要がありますか?
  • saveRequest シグナルのカスケードに関しては、ここで四角い車輪を再発明しているのでしょうか? RAC API を使用するには多くの方法があるようです。私のニーズを満たすより良いソリューションはありますか?

前もって感謝します - この Reactive は魅力的ですが、考え方を変える必要があり、ベスト プラクティスに従わないと悪用される可能性が非常に高いようです。

ローリー

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

afnetworking - 複数のネットワーク リクエストを ReactiveCocoa と組み合わせる

私は ReactiveCocoa を調査しており、何が可能かを確認しようとしています。私が抱えている問題は、いくつかのネットワーク リクエストを連鎖させることです。

最初に識別子のリストを取得し、次に各識別子に対して、その ID に対応するデータを取得するための呼び出しを行い、モデル オブジェクトを作成してオブジェクトの配列を返します。

AFNetworking の RACExtensions を使用してリクエストを作成しています。コードは次のようになります。

identifiersSignal メソッドは次のようになります。

これは、次のような json 辞書を返します。

私は現在、これらの呼び出しを実際に嘲笑しており、それらが独立して動作することを知っています.ReacticeCocoaを使用してそれらをつなぎ合わせようとしています.

ReactiveCocoa を使用してこれを達成する方法について、適切なサンプルを見つけたり見つけたりすることはできませんが、それが可能であると確信しています。