ReactiveCocoa之RAC过滤(八)

前端之家收集整理的这篇文章主要介绍了ReactiveCocoa之RAC过滤(八)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@
  • -(void)skip{
  • RACSubject*subject=[RACSubjectsubject];
  • [[subjectskip:2]subscribeNext:^(idx){
  • NSLog(@"%@",x);
  • }];
  • [subjectsendNext:@1];
  • [subject@2];
  • @3];
  • }
  • //distinctUntilChanged:--如果当前的值跟上一次的值一样,就不会被订阅
  • -(void)distinctUntilChanged{
  • subject];
  • [[subjectdistinctUntilChanged]idx){
  • NSLog(@"%@",x);
  • }];
  • //发送信号
  • @2];//不会被订阅
  • //take:可以屏蔽一些值,去前面几个值---这里take为2则只拿到前两个值
  • void)take{
  • take:2]//takeLast:和take的用法一样,不过他取的是最后的几个值,如下,则取的是最后两个值
  • //注意点:takeLast一定要调用sendCompleted,告诉他发送完成了,这样才能取到最后的几个值
  • void)takeLast{
  • takeLast:2]//发送信号
  • @1];
  • @2];
  • @3];
  • sendCompleted];
  • //takeUntil:---给takeUntil传的是哪个信号,那么当这个信号发送信号或sendCompleted,就不能再接受源信号的内容了。
  • void)takeUntil{
  • RACSubject*subject2=[RACSubjecttakeUntil:subject2] [subject2@3];//1
  • //[subject2sendCompleted];//或2
  • @4];
  • }
  • //ignore:忽略掉一些值
  • void)ignore{
  • //ignore:忽略一些值
  • //ignoreValues:表示忽略所有的值
  • //1.创建信号
  • //2.忽略一些值
  • RACSignal*ignoreSignal=[subjectignore://3.订阅信号
  • [ignoreSignal//4.发送数据
  • //一般和文本框一起用,添加过滤条件
  • void)fliter{
  • //只有当文本框的内容长度大于5,才获取文本框里的内容
  • [[self.textField.rac_textSignalfilter:^BOOL(idvalue){
  • //value源信号的内容
  • return[valuelength]>5;
  • //返回值就是过滤条件。只有满足这个条件才能获取内容
  • }] }
  • 猜你在找的React相关文章