admin管理员组文章数量:1642239
最近在做关于RACSignal的项目,做一下笔记
//创建一个基本 signal
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[subscriber sendNext:@"1"];
[subscriber sendNext:@"2"];
[subscriber sendCompleted];
return nil;
}];
//订阅
[signal subscribeNext:^(id _Nullable x) {
NSLog(@"%@", x);
}];
//打印
Demo[15054:2153646] 1
Demo[15054:2153646] 2
Demo[15054:2153646] dispose
说明:
- subscribeNext,将事件流传递给下一个subscriber。
- filter,用来做一些条件判断、筛选。返回值是BOOL。
- map,用来转化事件数据类型,比如NSString转成NSNumber。
- RAC(self.passwordTextField, backgroundColor),绑定属性作为数据的返回类型。
- combineLatest,合并多个信号,combineLatest:@[self.phoneNameRegexSig,self.passwordRegexSig]。
- rac_signalForControlEvents,绑定控制事件,用于UIButton等。
- createSignal,创建信号。
- flattenMap,简化了一步操作,本来是信号A转成信号B调用subscribeNext,B变成了subscribeNext的x;使用flattenMap后,B里面的事件流直接传给了x。
- doNext,事件发生时处理的逻辑,放在rac_signalForControlEvents之后。
- RACDisposable,手动移除事件流。
- 使用@weakify(self)避免循环引用和使用@strongify(self)保存住self对象。
- 信号创建之后,需要使用subscribeNext传递事件流,才能使代码执行。
- then,等待网络时间处理回调,有效地将控制从一个信号传递给下一个。传递error事件。
- deliverOn:[RACScheduler mainThreadScheduler]]转到主线程。
- RACScheduler *scheduler subscribeOn:scheduler异步调用。
- throttle间隔操作,间隔几秒后执行信号。
版权声明:本文标题:RACSignal的基本方法说明 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729333267a1196667.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论