一、簡單的實現(xiàn)步驟
套路:1、創(chuàng)建信號(冷信號!)
2、訂閱信號(熱信號!!)
3、發(fā)送數(shù)據subscriber它來發(fā)送
- (void)viewDidLoad {
[super viewDidLoad];
//RACSignal: 信號類,當我們有數(shù)據產生,創(chuàng)建一個信號!
//1.創(chuàng)建信號(冷信號!)
//didSubscribe調用:只要一個信號被訂閱就會調用!!
//didSubscribe作用:利用subscriber發(fā)送數(shù)據!!
RACSignal * signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
//3.發(fā)送數(shù)據subscriber它來發(fā)送
[subscriber sendNext:@"發(fā)送了!??!"];
return nil;
}];
//2.訂閱信號(熱信號!!)
//nextBlock調用:只要訂閱者發(fā)送數(shù)據就會調用!
//nextBlock作用:處理數(shù)據,展示UI界面!
[signal subscribeNext:^(id x) {
//x:信號發(fā)送的內容!!
NSLog(@"%@",x);
}];
}
1、創(chuàng)建信號(冷信號!)
通過上文中的第一步的RACSignal調用block方法進去查看源碼:
在創(chuàng)建了一個消息對象signal后保存了block:subscriber

Snip20181102_5.png
2、訂閱信號(熱信號!!)

Snip20181102_7.png

Snip20181102_8.png

Snip20181102_9.png
3、發(fā)送數(shù)據subscriber

Snip20181102_10.png

Snip20181102_11.png
小結:RAC:中就是通過上文中1僅僅保存didSubscribe(didSubscribe作用:利用subscriber發(fā)送數(shù)據) block不執(zhí)行2保存了next(nextBlock作用:處理數(shù)據,展示UI界面) block 執(zhí)行了didSubscribe 3中執(zhí)行了next block實現(xiàn)了響應式編程
總體流程圖

Snip20181102_12.png
補充:

Snip20181102_13.png

Snip20181102_13.png

Snip20181102_14.png