码迷,mamicode.com
首页 > 其他好文 > 详细

RAC系统化学习

时间:2016-07-09 10:33:49      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

1、RACSignal:

    // 只要订阅者调用sendNext,就会执行nextBlock

    // 只要订阅RACDynamicSignal,就会执行didSubscribe

    // 前提条件是RACDynamicSignal,不同类型信号的订阅,处理订阅的事情不一样

//创建信号,此时信号是冷信号,并不能发送数据
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
       
        [subscriber sendNext:@"发送数据"];
//信号销毁
return [RACDisposable disposableWithBlock:^{ NSLog(@"信号取消订阅"); }]; }]; //信号订阅,此时信号变为热信号,接收到数据 [signal subscribeNext:^(id x) {

      // nextBlock调用:只要订阅者发送数据就会调用

        NSLog(@"%@", x);
    }];

2、RACSubject

 //创建信号
    RACSubject *subject = [RACSubject subject];
    /*
      不同信号订阅的方式不一样
      RACSubject处理订阅:仅仅是保存订阅者,可以多个订阅者
      底层实现:遍历所有的订阅者,调用nextBlock
     
      执行流程:
      RACSubject被订阅,仅仅是保存订阅者
      RACSubject发送数据,遍历所有的订阅,调用他们的nextBlock
     */
    [subject subscribeNext:^(id x) {
       
        NSLog(@"++++++%@", x);
        
    }];
    [subject subscribeNext:^(id x) {
        
        NSLog(@"-----%@", x);
        
    }];
    [subject sendNext:@111];

 3、RACReplaySubject

 

RAC系统化学习

标签:

原文地址:http://www.cnblogs.com/czc-wjm/p/5655282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!