RACSubject:信号提供者:信号提供者!!,自己可以充当信号,又能够发送信号!!并且可以订阅多个信号
它是如何实现RACSignal及RACSubscriber(协议)的功能????
真相是

1、创建信号底层分析
//1.创建信号:仅仅是创建了一个数组返回了一个信号对象
RACSubject * subject = [RACSubject subject];

2.订阅信号: 和用signel方式不同之处在于:之前在真正订阅信号时是通过执行之前保存block,现在是通过数组保存我们的订阅者
//不同的信号订阅的方式不一样!!(因为类型不一样,所以调用的方法不一样)
//RACSubject处理订阅:拿到之前的_subscribers保存订阅者
[subject subscribeNext:^(id x) {
NSLog(@"接受到了数据:%@",x);
}];


3.发送数据
//遍历出所有的订阅者,调用nextBlock
[subject sendNext:@"汉堡包"];


流程图

网友评论