你的位置:首页 > 软件开发 > 操作系统 > ReactiveCocoa比较区分replay, replayLast和replayLazily

ReactiveCocoa比较区分replay, replayLast和replayLazily

发布时间:2015-09-24 02:00:13
一直搞不明白replayLazily可以直接跳到最后看。  原文:http://spin.atomicobject.com/2014/06/29/replay-replaylast-replaylazily/  最近同事问我在ReactiveCoca中replay,repl ...

ReactiveCocoa比较区分replay, replayLast和replayLazily

    一直搞不明白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 (#换成@)。

可能感兴趣文章

我的浏览记录