RACSignal的基本方法说明

最近在做关于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 

说明:

  1. subscribeNext,将事件流传递给下一个subscriber。
  2. filter,用来做一些条件判断、筛选。返回值是BOOL。
  3. map,用来转化事件数据类型,比如NSString转成NSNumber。
  4. RAC(self.passwordTextField, backgroundColor),绑定属性作为数据的返回类型。
  5. combineLatest,合并多个信号,combineLatest:@[self.phoneNameRegexSig,self.passwordRegexSig]。
  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间隔操作,间隔几秒后执行信号。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值