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

ios - シグナルチェーンでエラーを送信する方法

整数値を含む信号 A があります。-1 の値は無効な結果を示すため、値として -1 を渡す代わりに、エラーを送信したいと思います。このようにして、B にサブスクライブするものはすべて、subscribeNext: を介して有効な整数を受け取り、subscribeError: を介してエラーを受け取ります。

私は RACSubject でこれを行う方法を知っていると思います:

次の行に沿ってこれを行うためのより「インライン」な方法があるかどうか疑問に思っています。

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

objective-c - dispatch_queue sendComplete で作成された RACSubject がマージされたシグナルにならない

DISPATCH_QUEUE_PRIORITY_DEFAULT gcd キューで実行されている dispatch_async ブロックの場合: 2 つの RACSubject オブジェクトを作成し、RACSignal マージを使用して、サブスクライブを完了します。次に、このテストのために (そして実際のコードでシナリオを再現するために)、両方で sendComplete を送信します。マージされたシグナル完了サブスクリプションは決して発火しません。サブジェクトに 2 つの完了サブスクリプションを個別にアタッチしましたが、それらは起動します。gcd キューの代わりにメイン スレッドで同じテストを行うと、期待どおりに動作します。

これを機能させる方法はありますか、それともメインスレッドですべてのサブジェクトを取得するためにリファクタリングする必要がありますか?

0 投票する
3 に答える
8460 参照

ios - Reactive Cocoa を通知付きで使用する方法

通知名からシグナルを作成するにはどうすればよいですか? たとえば、次から行きたいです。

次のようなものに:

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

reactive-cocoa - 異なるタイプのシグナルのマージをスキャンする

arraysarraySignalのシグナルと objects のシグナルがあるとしますaddedObjectsSignal

modifiedArraySignalから最新の配列を取得し、 からの最新の配列以降に送信された からarraySignalのオブジェクトを追加する3 番目のシグナル を定義したいと思います。addedObjectsSignalarraySignal

これを行う1つの方法は次のとおりです。

を使用しない別のアプローチはあります-[NSObject isKindOfClass:]か?

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

ios - ReactiveCocoa は単一の信号を値に変換します

私はしばらく ReactiveCocoa を使用してきましたが、常にこれを行ってきました。

しかし、気になるものに直接バインドする方が良いようです。もっとこのように:

信号を別のものに変換するにはどうすればよいですか? すべての例で and を使用combineLatest:していますreduceが、信号が 1 つしかなく、エラーをスローしてマップします。

これをどのように整理しますか?

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

ios - コードが終了するまで、ReactiveCocoa でサブスクライバーに通知するのを待ちますか?

ReactiveCocoa と KVO を使用すると、何かをサブスクライブすると、バインドしている値を変更するとすぐにサブスクライバーに通知されます。私の状態が user.firstName と user.lastName に依存しているとしましょう:

両方の変数が設定されている限り、またはいずれ firstNameかを変更するたびに setFullName が呼び出されますlastName

変更が「解決」してフルネームを呼び出すまで待ち​​たいので、そのように同じ関数に値を設定するsetFullNameと、最終値で1回呼び出されます。

どうやってやるの?

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

objective-c - ネストされた for ループを ReactiveCocoa で単純化するにはどうすればよいですか?

NSDictionaries次のように、事前にわからないものが2つあるとします。

dictBのキーと のキーまたは値の間の最初の一致を見つけたいですdictA。の各キーはdictB、NSNumber または文字列のいずれかになります。数値の場合は、 のから一致を見つけようとしますdictA文字列の場合は、 のキーから一致を見つけようとしますdictA

for ループを使用すると、次のようになります。

メソッドを使用RACSequenceして ReactiveCocoa でこれを書き直して、次のようにするにはどうすればよいでしょうか。RACStream

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

iphone - Reactive Cocoa reduce ブロックが呼び出されない

私はReactive Cocoaに頭を悩ませようとしていRAC(self.windButton.enabled)ます.セクション(下部)を除いてすべて正常に動作し、reduceブロックは呼び出されません. 誰かが私の間違いを指摘してくれたらうれしいです。コードは一目瞭然で、基本的にアプリは次のようになります。

アプリのスクリーンショット

ここに実装があります

私の問題は、ボタンが無効にならないことです。

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

ios - 非同期ネットワーク リクエストを使用した ReactiveCocoa シーケンス

私はデモンストレーション アプリを作成しており、ReactiveCocoaの デザイン パターンにできるだけ準拠しようとしています。アプリの機能は次のとおりです。

  • デバイスの場所を見つける
  • ロケーションキーが変更されるたびに、以下をフェッチします。
    • 現在の天気
    • 毎時予報
    • 毎日の予報

したがって、順序は、1) 場所を更新する、2) 3 つの天候フェッチをすべてマージする、のようになります。WeatherManager気象オブジェクト、位置情報、および手動で更新するメソッドを公開するシングルトンを構築しました。このシングルトンはCLLocationManagerDelegateプロトコルに準拠しています。ロケーション コードは非常に基本的なものなので、省略します。唯一の興味深い点は次のとおりです。

気象条件の取得はすべて非常に似ているためRACSignal、URL から JSON を取得するための を生成するメソッドを構築しました。

これにより、メソッドをきれいに保つことができるので、URL を構築して RACSignal を返す 3 つの短いメソッドができました。ここで良いことは、JSON を解析して適切なプロパティを割り当てるための副作用を作成できることです (注:ここではMantleを使用しています)。

最後に、-init私のシングルトンで、RAC オブザーバーをその場所に設定しました。場所が変わるたびに天気を取得して更新したいからです。

すべてが正常に機能しますが、フェッチとプロパティの割り当てを構造化するためのリアクティブな方法から逸脱しているのではないかと心配しています。でシーケンスを実行しようとしまし-then:たが、希望どおりのセットアップを行うことができませんでした。

また、非同期フェッチの結果をシングルトンのプロパティにバインドするクリーンな方法を見つけようとしていましたが、それを機能させるのに苦労しました。フェッチ s を「拡張」する方法を理解できませんでしたRACSignal(注:-doNext:それぞれのアイデアはそこから生まれました)。

これを解決するための助けやリソースは本当に素晴らしいでしょう. ありがとう!