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
不同的信号订阅方式不同.不同订阅者发送数据方式也不同

复习巩固:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容