22
ReactiveCocoaには、とsubscribeError:
の違いは何ですか? catch:
で信号を返すのはなぜですか?catch:とsubscribeErrorの違い:
ReactiveCocoaには、とsubscribeError:
の違いは何ですか? catch:
で信号を返すのはなぜですか?catch:とsubscribeErrorの違い:
-subscribeError:
実際に購読しています:これは行末です。一方、-catch:
は、単に信号を新しい信号に変換する(実際には加入しない)。プログラムのようなシグナルを考えてみてください。 -subscribeError:
のときは、コンピュータに「このプログラムを実行したいが、エラーが出たら返信したいだけだ」と伝えています。 -catch:
の場合は、「このプログラムではエラーが発生する可能性があります。古いものを元にして新しいエラーを処理したいのです。
信号を-catch:
に戻さなければならない理由は、単純にエラーをスケーティングするだけではなく、実際にはエラーに応答するためです。元の信号が一旦エラーになったら、それは消えてしまいます。失敗した信号をそのまま残しておきたい場合は、-catch:
で新しい信号を与えなければなりません。あなたが-catch:
で何ができるかの
例:
[RACSignal empty]
。[RACSignal error:err]
何かをした後でエラーを再現したい場合や、エラーを変換したい場合などです。
良い説明'-catch:'の中からAlertViewを起動し、エラーを「スケルチ」するために空のシグナルを返すことは、少なくとも私の経験では、RACでのエラー処理の共通点のようです。 –
@terrylewisただし、スレッドには注意してください。シグナルの値は任意のスレッドに渡すことができるので、 '-catch:'ブロックもそこで実行されます。 –