我想知道是否有可能累積特定信號的next
之間發生的信號結果。類似特定信號出現之前的緩衝信號
[[[RACSignal
combineLatest:@[signal1, signal2, signal3]]
takeUntil:signal4]
subscribeNext:^(id x) {
// ...
}];
但第signal4
的next
後沒有完成。
我正在使用的場景是我有一個viewController1
,其中顯示viewController2
。 viewController2
允許用戶更改影響viewController1
中顯示的數據的object
。目前我在viewController2
上曝光objectChangedSignal
並從viewController1
收聽。
不過,我希望收到直接從viewController1
但只有它激發viewWillAppear
信號且僅當viewController1
viewWillDisappear
後發生變化後object
的變化。
希望它是有道理的,謝謝。
謝謝您的廣泛答案!但它並沒有真正以我想象的方式工作。很可能是由於任務描述不佳:'s1','s2'和's3'不一定會觸發。但如果他們這樣做,我只希望在's4'發射後才能得到通知。 –
如果's1','s2'或s3'中的任何一個沒有發送一個值,那麼'-combineLatest:'不會發送一個值 - 它會一直等待,直到發送給它的每個信號都在發送之前發送一個值值的元組。 (有些方法可以處理這個問題,比如使用'-startWith:'。) 它聽起來像' - [takeUntil:s4]'不是你想要的,因爲這個*完成* s4'時的信號火災。也許你想要一個'-skipUntilBlock:','-skipWhileBlock:',或'-if:then:else:'operations? – erikprice