ReativeCocoa是一个非常值得我们学习的优秀的框架,典型的响应式和函数式混合思想设计.
一直在研究它的源码,没时间整理,现在整理一下.
从浅到深来写,并且不断跟新....
//函数式+响应式FRP
//1通过RACSignal创建一个信号(默认是冷信号)
//2通过订阅者订阅这个信号(变成热信号)
// 3发送信号
//1创建信号
//底层实现流程
//didSubscreibe(block)
//利用didSubScriber发送数据
//1 RACDynamicSignal创建的真实信号类
// 2保存didSubScribe
//signal->_didSubscribe = [didSubscribe copy];
RACSignal*signal = [RACSignalcreateSignal:^RACDisposable*(id subscriber) {
//发送数据subscriber它来发送
//1获取到存取的nextBlock
//2执行nextBlock
[subscribersendNext:@"3333"];
returnnil;
}];//函数式思想
//2订阅信号
//nextBlock调用:只要订阅者发送数据就会调用
//1创建订阅者
//RACSubscriber *o = [RACSubscriber subscriberWithNext:nextBlock error:NULL completed:NULL];
//2保存nextBlock
//subscriber->_next = [next copy];
//2紧接着进入订阅信号的方法
//执行didSubscribe Block
//RACDisposable *innerDisposable = self.didSubscribe(subscriber);
[signalsubscribeNext:^(idx) {
NSLog(@"%@",x);
}];//响应式编程
流程图如下: