RACReplaySubject信号类

RACReplaySubject:继承自RACSubject特点:可以先发送数据在订阅信号(基于内部实现)

内部实现和简单使用:

    1. 创建信号
      1.0 内部初始化_valuesReceived(发送的值)
      1.1 内部实现初始化_subscribers数组
    1. 订阅信号
      2.0 创建订阅者
      2.1 保存nextBlock
      2.2 拿到订阅者,遍历所有值.
      2.3 调用subscriber的sendNext方法发送所有值(此时你还没有发送的值,所以调用send不会有作用)
    1. 发送信号sendNext.
      3.0 此时会将消息addObject到_valuesReceived内保存
      3.1 遍历所有订阅者,发送数据.

代码实现

//1. 创建信号
RACReplaySubject *subject = [RACReplaySubject subject];
//2. 订阅信号
[subject subscribeNext:^(id x) {
    NSLog(@"信号%@发送执行",x);
}];
//3.发送信号
[subject sendNext:@"RACReplaySubject"];

总结信号

信号类:仅仅表示有数据产生
订阅者:发送数据执行nextBlock
不同的信号订阅方式不同.不同订阅者发送数据方式也不同

复习巩固:

你可能感兴趣的:(RACReplaySubject信号类)