Reactive Cocoa
2016-05-23 17:56
375 查看
http://www.jianshu.com/p/87ef6720a096
RACSiganl简单使用:
// RACSignal使用步骤: // 1.创建信号 + (RACSignal *)createSignal:(RACDisposable * (^)(id<RACSubscriber> subscriber))didSubscribe // 2.订阅信号,才会激活信号. - (RACDisposable *)subscribeNext:(void (^)(id x))nextBlock // 3.发送信号 - (void)sendNext:(id)value // RACSignal底层实现: // 1.创建信号,首先把didSubscribe保存到信号中,还不会触发。 // 2.当信号被订阅,也就是调用signal的subscribeNext:nextBlock // 2.2 subscribeNext内部会创建订阅者subscriber,并且把nextBlock保存到subscriber中。 // 2.1 subscribeNext内部会调用siganl的didSubscribe // 3.siganl的didSubscribe中调用[subscriber sendNext:@1]; // 3.1 sendNext底层其实就是执行subscriber的nextBlock // 1.创建信号 RACSignal *siganl = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { // block调用时刻:每当有订阅者订阅信号,就会调用block。 // 2.发送信号 [subscriber sendNext:@1]; // 如果不在发送数据,最好发送信号完成,内部会自动调用[RACDisposable disposable]取消订阅信号。 [subscriber sendCompleted]; return [RACDisposable disposableWithBlock:^{ // block调用时刻:当信号发送完成或者发送错误,就会自动执行这个block,取消订阅信号。 // 执行完Block后,当前信号就不在被订阅了。 NSLog(@"信号被销毁"); }]; }]; // 3.订阅信号,才会激活信号. [siganl subscribeNext:^(id x) { // block调用时刻:每当有信号发出数据,就会调用block. NSLog(@"接收到数据:%@",x); }];
相关文章推荐
- React显示原生css style样式在dom对象里
- ReactiveCocoa之RAC内存管理(十二)
- react 与 jquery
- ReactiveCocoa之核心方法bind的使用(十一)
- 【React Native】把现代web科技带给移动开发者(一)
- react fake double , bind click and dblclick on the same element
- React Native项目修改包名(Android版)
- React Native初认识
- react native android
- React入门实践之TodoList: 添加事件和搜索框
- ReactiveCocoa之RAC常用宏(十)
- ReactiveCocoa之RAC合并(九)
- ReactiveCocoa之RAC过滤(八)
- ReactiveCocoa之RAC映射(七)
- ReactiveCocoa之RACMulticastConnection使用(六)
- ReactiveCocoa之RACCommand使用(五)
- ReactiveCocoa之RACSubject用法(四)
- ReactiveCocoa之RACSignal核心类的使用(三)
- ReactiveCocoa之常见用法(二)
- React-native debug errors