加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ReactiveCocoa-基础

发布时间:2020-12-15 04:49:21 所属栏目:百科 来源:网络整理
导读://subscribeNext:传递给下一个执行 [ self .usernameTF .rac_textSignal subscribeNext :^( id x){ NSLog( @"%@" ,x); }]; //filter:过滤信号 [[ filter :^ BOOL ( NSString *name){ return name .length 3 ; }] id x){ NSLog( @"%@" ,x); }]; //map:转换
  1. //subscribeNext:传递给下一个执行
  2. [self.usernameTF.rac_textSignalsubscribeNext:^(idx){
  3. NSLog(@"%@",x);
  4. }];
  5. //filter:过滤信号
  6. [[filter:^BOOL(NSString*name){
  7. returnname.length>3;
  8. }]idx){
  9. NSLog(@"%@",x);
  10. }];
  11. //map:转换信号的类型
  12. [[self.passwordTF.rac_textSignalmap:^id(NSString*password){
  13. return@(password.length);
  14. }]//创建一个信号
  15. RACSignal*nameSignal=[NSString*name){
  16. return@(name.length>3);
  17. RACSignal*passwordSignal=[return@(password.length>4);
  18. //利用上一步所得的信号再进行条件判断
  19. //当不使用subscribeNext时上面的信号不会执行;
  20. [[nameSignalNSNumber*nameValue){
  21. return[nameValueboolValue]?[UIColorclearColor]:[UIColorgreenColor];
  22. UIColor*color){
  23. self.usernameTF.backgroundColor=color;
  24. [[passwordSignalNSNumber*passWordValue){
  25. return[passWordValueself.passwordTF.backgroundColor=color;
  26. //RAC宏允许您指定一个信号的输出对象的属性。它需要两个参数,第一个是包含属性设置的对象,第二个是属性名。每次信号发出下一个事件,是分配给给定属性的值。
  27. //下面这段代码与上面的作用相同
  28. RAC(self.usernameTF,backgroundColor)=[nameSignalself.passwordTF,backgroundColor)=[passwordSignal//结合信号
  29. RACSignal*siginSignal=[RACSignalcombineLatest:@[nameSignal,passwordSignal]reduce:^NSNumber*nameValue,NSNumber*passWordValue){
  30. return@([nameValueboolValue]&&[passWordValueboolValue]);
  31. [siginSignalNSNumber*siginValue){
  32. self.siginBtn.enabled=[siginValueboolValue];
  33. self.siginBtnrac_signalForControlEvents:UIControlEventTouchUpInside] NSLog(@"按钮被点击了");
  34. }];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读