美文网首页
[基础]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