ReactiveCocoaを使用すると、値を生成する操作を再トリガーするのではなく、シグナルから同じ値をサブスクライバーに受信させる方法が 2 つあるようです: RACReplaySubject または RACMulticastConnection 経由。
RACReplaySubject のヘッダー ドキュメントは次のとおりです。
リプレイ サブジェクトは、送信された値を (定義された容量まで) 保存し、それらを新しいサブスクライバーに再送信します。また、エラーまたは完了を再生します。
RACMulticastConnection の場合:
マルチキャスト接続は、信号への 1 つのサブスクリプションを多くのサブスクライバーに共有するという考えをカプセル化します。これは、基になるシグナルへのサブスクリプションに副作用が伴う場合、または複数回呼び出す必要がない場合に最も頻繁に必要になります。
-[RACMulticastConnection connect]
マルチキャストされたシグナルは、が呼び出されたときにのみサブスクライブさ れます。それが起こるまで、値は に送信されませんsignal
。を自動的に呼び出す-[RACMulticastConnection autoconnect]
方法について は、を参照してください。-[RACMulticastConnection connect]
RACMulticastConnection を手動で作成しないでください。代わりに
-[RACSignal publish]
またはを使用します-[RACSignal multicast:]
。
RACReplaySubject または RACMulticastConnection をいつ使用するかについて、誰かが簡単なガイドラインを提供できますか?