一、简单的实现步骤
套路:1、创建信号(冷信号!)
2、订阅信号(热信号!!)
3、发送数据subscriber它来发送
- (void)viewDidLoad {
[super viewDidLoad];
//RACSignal: 信号类,当我们有数据产生,创建一个信号!
//1.创建信号(冷信号!)
//didSubscribe调用:只要一个信号被订阅就会调用!!
//didSubscribe作用:利用subscriber发送数据!!
RACSignal * signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
//3.发送数据subscriber它来发送
[subscriber sendNext:@"发送了!!!"];
return nil;
}];
//2.订阅信号(热信号!!)
//nextBlock调用:只要订阅者发送数据就会调用!
//nextBlock作用:处理数据,展示UI界面!
[signal subscribeNext:^(id x) {
//x:信号发送的内容!!
NSLog(@"%@",x);
}];
}
1、创建信号(冷信号!)
通过上文中的第一步的RACSignal调用block方法进去查看源码:
在创建了一个消息对象signal后保存了block:subscriber
Snip20181102_5.png
2、订阅信号(热信号!!)
Snip20181102_7.png
Snip20181102_8.png
Snip20181102_9.png
3、发送数据subscriber
Snip20181102_10.png
Snip20181102_11.png
小结:RAC:中就是通过上文中1仅仅保存didSubscribe(didSubscribe作用:利用subscriber发送数据) block不执行2保存了next(nextBlock作用:处理数据,展示UI界面) block 执行了didSubscribe 3中执行了next block实现了响应式编程
总体流程图
Snip20181102_12.png
补充:
Snip20181102_13.png
Snip20181102_13.png
Snip20181102_14.png