一直搞不明白replayLazily可以直接跳到最后看。 原文:http://spin.atomicobject.com/2014/06/29/replay-replaylast-replaylazily/ 最近同事问我在ReactiveCoca中replay,repl ...
一直搞不明白replayLazily可以直接跳到最后看。
原文:http://spin.atomicobject.com/2014/06/29/replay-replaylast-replaylazily/
最近同事问我在ReactiveCoca中replay,replayLast和replayLazily有什么区别,但我对此也是一知半解,也不能完整描述出来它们之间的不同,所以,我将对它们进行深入研究。
如果你没有对RACReplaySubject和RACMulticastConnection有很好的理解的话,你会对它们在头文件中的描述理解的很困难。现在不去了解底层原理,我会尝试去描述解析这些方法。
Subscribing to a Signal
对于一个“普通”的信号,每次订阅都将会导致信号中的代码再执行一遍,且该次订阅者仅接收到该次订阅发送出去的值。
第一个例子演示每次订阅都会重新执行订阅代码。
__block int num = 0; RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id subscriber) { num++; NSLog(@"Increment num to: %i", num); [subscriber sendNext:@(num)]; return nil; }]; NSLog(@"Start subscriptions"); // Subscriber 1 (S1) [signal subscribeNext:^(id x) { NSLog(@"S1: %@", x); }]; // Subscriber 2 (S2) [signal subscribeNext:^(id x) { NSLog(@"S2: %@", x); }]; // Subscriber 3 (S3) [signal subscribeNext:^(id x) { NSLog(@"S3: %@", x); }];
原标题:ReactiveCocoa比较区分replay, replayLast和replayLazily
关键词:react
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。