ReactiveCocoa之RAC过滤(八)

前端之家收集整理的这篇文章主要介绍了ReactiveCocoa之RAC过滤(八)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. -(void)skip{
  2. RACSubject*subject=[RACSubjectsubject];
  3. [[subjectskip:2]subscribeNext:^(idx){
  4. NSLog(@"%@",x);
  5. }];
  6. [subjectsendNext:@1];
  7. [subject@2];
  8. @3];
  9. }
  10. //distinctUntilChanged:--如果当前的值跟上一次的值一样,就不会被订阅
  11. -(void)distinctUntilChanged{
  12. subject];
  13. [[subjectdistinctUntilChanged]idx){
  14. NSLog(@"%@",x);
  15. }];
  16. //发送信号
  17. @2];//不会被订阅
  18. //take:可以屏蔽一些值,去前面几个值---这里take为2则只拿到前两个值
  19. void)take{
  20. take:2]//takeLast:和take的用法一样,不过他取的是最后的几个值,如下,则取的是最后两个值
  21. //注意点:takeLast一定要调用sendCompleted,告诉他发送完成了,这样才能取到最后的几个值
  22. void)takeLast{
  23. takeLast:2]//发送信号
  24. @1];
  25. @2];
  26. @3];
  27. sendCompleted];
  28. //takeUntil:---给takeUntil传的是哪个信号,那么当这个信号发送信号或sendCompleted,就不能再接受源信号的内容了。
  29. void)takeUntil{
  30. RACSubject*subject2=[RACSubjecttakeUntil:subject2] [subject2@3];//1
  31. //[subject2sendCompleted];//或2
  32. @4];
  33. }
  34. //ignore:忽略掉一些值
  35. void)ignore{
  36. //ignore:忽略一些值
  37. //ignoreValues:表示忽略所有的值
  38. //1.创建信号
  39. //2.忽略一些值
  40. RACSignal*ignoreSignal=[subjectignore://3.订阅信号
  41. [ignoreSignal//4.发送数据
  42. //一般和文本框一起用,添加过滤条件
  43. void)fliter{
  44. //只有当文本框的内容长度大于5,才获取文本框里的内容
  45. [[self.textField.rac_textSignalfilter:^BOOL(idvalue){
  46. //value源信号的内容
  47. return[valuelength]>5;
  48. //返回值就是过滤条件。只有满足这个条件才能获取内容
  49. }] }
原文链接:https://www.f2er.com/react/305643.html

猜你在找的React相关文章