RACSignal的基本使用

来源:互联网 发布:手游藕丝步云履数据 编辑:程序博客网 时间:2024/06/06 19:48

新浪微博:love_in_sky

2017年7月19日最新文章。

很多文章都将subscribe阐述为订阅,而且读法都是后者订阅前者,这不是非常直观,那么如果是传递事件流的概念可能就好多了,比如
RACSubject *subject = [RACSubject subject];
[coldSignal subscribe:subject];
coldSignal冷信号将事件流传给subject,这样就直观很多了。

  1. subscribeNext,调用这个,将事件流传递给下一个subscriber。
  2. filter,用来做一些条件判断。返回值是BOOL。
  3. map,用来转化事件数据类型,比如NSString转成NSNumber。
  4. RAC(self.passwordTextField, backgroundColor),绑定属性作为数据的返回类型。
  5. combineLatest,合并多个信号。
  6. rac_signalForControlEvents,绑定控制事件,用于UIButton等。
  7. createSignal,创建信号。
  8. flattenMap,简化了一步操作,本来是信号A转成信号B调用subscribeNext,B变成了subscribeNext的x;使用flattenMap后,B里面的事件流直接传给了x。
  9. doNext,事件发生时处理的逻辑,放在rac_signalForControlEvents之后。
  10. RACDisposable,手动移除事件流。
  11. 使用@weakify(self)避免循环引用和使用@strongify(self)保存住self对象。
  12. 信号创建之后,需要使用subscribeNext传递事件流,才能使代码执行。
  13. then,等待网络时间处理回调,有效地将控制从一个信号传递给下一个。传递error事件。
  14. deliverOn:[RACScheduler mainThreadScheduler]]转到主线程。
  15. RACScheduler *scheduler subscribeOn:scheduler异步调用。
  16. throttle间隔操作,间隔几秒后执行信号。

相关链接:
ReactiveCocoa入门教程-第一部分
ReactiveCocoa入门教程-第二部分

原创粉丝点击