美文网首页
[基础]RACSignal

[基础]RACSignal

作者: 古愿狼 | 来源:发表于2016-11-21 14:54 被阅读0次

    一些基本概念

    • RACSignal是ReactiveCocoa中最核心的类
    • RACSignal本身不具备发送信号的能力(RACSignal类并没有subscribeNext方法),而是由内部的一个订阅者去发出
    • 只有订阅了该信号,才会触发对应的事件
    • 只要有值的改变,信号内部接收到数据,就会马上发出数据
    • 可通过-[RACSignal createSignal:]来创建,但很多时候通过方法的返回值来获得,譬如+[RACSignal concat:](将N个信号合成1个信号的方法)

    创建方法

    //1.创建信号
    RACSignal *signal = [RACSignal createSignal:^RACDisposable *_Nullable (id < RACSubscriber > _Nonnull subscriber) {
    
        //3.当有订阅者订阅信号的时候,就会调用本block
    
        //4.发送信号
        NSLog(@"signal's subscriber send 1");
        [subscriber sendNext:@"1"];
    
        //5.发送完成标记
        [subscriber sendCompleted];
    
        //6.RACDisposable,当执行过sendCompleted或者发送失败的时候,里面的block就会调用
        return [RACDisposable disposableWithBlock:^{
            NSLog(@"dispose");
        }];
    }];
    
    
    //2.订阅者订阅信号
    [signal subscribeNext:^(id _Nullable x) {
      NSLog(@"signal receive : %@", x);
    }];
    
    
    

    相关文章

      网友评论

          本文标题:[基础]RACSignal

          本文链接:https://www.haomeiwen.com/subject/fnjupttx.html