問題タブ [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 - シグナルチェーンでエラーを送信する方法
整数値を含む信号 A があります。-1 の値は無効な結果を示すため、値として -1 を渡す代わりに、エラーを送信したいと思います。このようにして、B にサブスクライブするものはすべて、subscribeNext: を介して有効な整数を受け取り、subscribeError: を介してエラーを受け取ります。
私は RACSubject でこれを行う方法を知っていると思います:
次の行に沿ってこれを行うためのより「インライン」な方法があるかどうか疑問に思っています。
objective-c - dispatch_queue sendComplete で作成された RACSubject がマージされたシグナルにならない
DISPATCH_QUEUE_PRIORITY_DEFAULT gcd キューで実行されている dispatch_async ブロックの場合: 2 つの RACSubject オブジェクトを作成し、RACSignal マージを使用して、サブスクライブを完了します。次に、このテストのために (そして実際のコードでシナリオを再現するために)、両方で sendComplete を送信します。マージされたシグナル完了サブスクリプションは決して発火しません。サブジェクトに 2 つの完了サブスクリプションを個別にアタッチしましたが、それらは起動します。gcd キューの代わりにメイン スレッドで同じテストを行うと、期待どおりに動作します。
これを機能させる方法はありますか、それともメインスレッドですべてのサブジェクトを取得するためにリファクタリングする必要がありますか?
ios - Reactive Cocoa を通知付きで使用する方法
通知名からシグナルを作成するにはどうすればよいですか? たとえば、次から行きたいです。
次のようなものに:
reactive-cocoa - 異なるタイプのシグナルのマージをスキャンする
arraysarraySignal
のシグナルと objects のシグナルがあるとしますaddedObjectsSignal
。
modifiedArraySignal
から最新の配列を取得し、 からの最新の配列以降に送信された からarraySignal
のオブジェクトを追加する3 番目のシグナル を定義したいと思います。addedObjectsSignal
arraySignal
これを行う1つの方法は次のとおりです。
を使用しない別のアプローチはあります-[NSObject isKindOfClass:]
か?
ios - ReactiveCocoa は単一の信号を値に変換します
私はしばらく ReactiveCocoa を使用してきましたが、常にこれを行ってきました。
しかし、気になるものに直接バインドする方が良いようです。もっとこのように:
信号を別のものに変換するにはどうすればよいですか? すべての例で and を使用combineLatest:
していますreduce
が、信号が 1 つしかなく、エラーをスローしてマップします。
これをどのように整理しますか?
ios - コードが終了するまで、ReactiveCocoa でサブスクライバーに通知するのを待ちますか?
ReactiveCocoa と KVO を使用すると、何かをサブスクライブすると、バインドしている値を変更するとすぐにサブスクライバーに通知されます。私の状態が user.firstName と user.lastName に依存しているとしましょう:
両方の変数が設定されている限り、またはいずれ firstName
かを変更するたびに setFullName が呼び出されますlastName
。
変更が「解決」してフルネームを呼び出すまで待ちたいので、そのように同じ関数に値を設定するsetFullName
と、最終値で1回呼び出されます。
どうやってやるの?
objective-c - ネストされた for ループを ReactiveCocoa で単純化するにはどうすればよいですか?
NSDictionaries
次のように、事前にわからないものが2つあるとします。
dictB
のキーと のキーまたは値の間の最初の一致を見つけたいですdictA
。の各キーはdictB
、NSNumber または文字列のいずれかになります。数値の場合は、 の値から一致を見つけようとしますdictA
。文字列の場合は、 のキーから一致を見つけようとしますdictA
。
for ループを使用すると、次のようになります。
メソッドを使用RACSequence
して ReactiveCocoa でこれを書き直して、次のようにするにはどうすればよいでしょうか。RACStream
iphone - Reactive Cocoa reduce ブロックが呼び出されない
私はReactive Cocoaに頭を悩ませようとしていRAC(self.windButton.enabled)
ます.セクション(下部)を除いてすべて正常に動作し、reduceブロックは呼び出されません. 誰かが私の間違いを指摘してくれたらうれしいです。コードは一目瞭然で、基本的にアプリは次のようになります。
ここに実装があります
私の問題は、ボタンが無効にならないことです。
ios - 非同期ネットワーク リクエストを使用した ReactiveCocoa シーケンス
私はデモンストレーション アプリを作成しており、ReactiveCocoaの デザイン パターンにできるだけ準拠しようとしています。アプリの機能は次のとおりです。
- デバイスの場所を見つける
- ロケーションキーが変更されるたびに、以下をフェッチします。
- 現在の天気
- 毎時予報
- 毎日の予報
したがって、順序は、1) 場所を更新する、2) 3 つの天候フェッチをすべてマージする、のようになります。WeatherManager
気象オブジェクト、位置情報、および手動で更新するメソッドを公開するシングルトンを構築しました。このシングルトンはCLLocationManagerDelegate
プロトコルに準拠しています。ロケーション コードは非常に基本的なものなので、省略します。唯一の興味深い点は次のとおりです。
気象条件の取得はすべて非常に似ているためRACSignal
、URL から JSON を取得するための を生成するメソッドを構築しました。
これにより、メソッドをきれいに保つことができるので、URL を構築して RACSignal を返す 3 つの短いメソッドができました。ここで良いことは、JSON を解析して適切なプロパティを割り当てるための副作用を作成できることです (注:ここではMantleを使用しています)。
最後に、-init
私のシングルトンで、RAC オブザーバーをその場所に設定しました。場所が変わるたびに天気を取得して更新したいからです。
すべてが正常に機能しますが、フェッチとプロパティの割り当てを構造化するためのリアクティブな方法から逸脱しているのではないかと心配しています。でシーケンスを実行しようとしまし-then:
たが、希望どおりのセットアップを行うことができませんでした。
また、非同期フェッチの結果をシングルトンのプロパティにバインドするクリーンな方法を見つけようとしていましたが、それを機能させるのに苦労しました。フェッチ s を「拡張」する方法を理解できませんでしたRACSignal
(注:-doNext:
それぞれのアイデアはそこから生まれました)。
これを解決するための助けやリソースは本当に素晴らしいでしょう. ありがとう!