2014-01-24 27 views
3

我試圖傾聽位置更新和錯誤(通過CLLocationManagerDelegate),並支持跟蹤錯誤但將其過濾出最終信號並保持活動狀態的能力。有沒有辦法讓RACSignal在發生錯誤後繼續接收`next`s?

當我訂閱位置信號(通過ReactiveCocoaPlayground的-[LocationManager currentLocationSignal])時,收到的任何錯誤都會結束信號。

我試過-catch:-catchTo:但這些只是捕獲一個錯誤,然後結束信號。

我試過在-catch:裏面返回一個全新的信號實例,但是那個THAT信號上的錯誤沒有被捕獲(這會導致後面的RAC()綁定崩潰)。

我試過一個遞歸的方法來捕獲這個,這導致了堆棧溢出(也許我只是犯了一個錯誤)。

錯誤發生後,有沒有辦法接收next

+1

這不是什麼['retry'](https://github.com/ReactiveCocoa/ReactiveCocoa/blob/master/ReactiveCocoaFramework/ReactiveCocoa /RACSignal%2BOperations.h#L541)是爲了? –

+0

你會看看那個.. – drhr

回答

5

我相信你正在尋找-[RACSignal retry]

/// Resubscribes to the receiving signal if an error occurs. 
- (RACSignal *)retry; 
相關問題