我正在尝试侦听位置更新和错误(通过CLLocationManagerDelegate
),并且支持跟踪错误但是将其从最终信号中过滤掉并保持活动的能力。
当我订阅位置信号时(通过ReactiveCocoaPlayground的-[LocationManager currentLocationSignal]
),收到的任何错误都将结束信号。
我已尝试-catch:
和-catchTo:
,但这些只是捕获一个错误,然后结束信号。
我已尝试在-catch:
内返回该信号的全新实例,但之后THAT信号上的错误未被捕获(这导致稍后RAC()
绑定崩溃)。
我也试过了一个递归方法来捕获这个问题,导致堆栈溢出(可能我只是犯了一个错误)。
错误发生后是否有办法接收next
?
答案 0 :(得分:5)
我相信你正在寻找-[RACSignal retry]
:
/// Resubscribes to the receiving signal if an error occurs.
- (RACSignal *)retry;