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

ReactiveCocoa简介一,什么是信号量和基本操作

发布时间:2020-12-15 04:40:03 所属栏目:百科 来源:网络整理
导读:1、textField输入有变化时,产生next事件 [self.usernameTextField.rac_textSignal subscribeNext:^(id x){ NSLog(@"%@",x);}]; 2、 超过3个字符长度的用户名,输出next事件 [[self.usernameTextField.rac_textSignalfilter:^BOOL(id value){ span style="co

1、textField输入有变化时,产生next事件

[self.usernameTextField.rac_textSignal subscribeNext:^(id x){
  NSLog(@"%@",x);
}];

2、 超过3个字符长度的用户名,输出next事件

[[self.usernameTextField.rac_textSignal
filter:^BOOL(id value){
<span style="color: rgb(0,130,0); font-family: Consolas,'Bitstream Vera Sans Mono','Courier New',Courier,monospace; font-size: 14px; white-space: pre;">//隐式转换</span>
   NSString*text = value;
   return text.length > 3;
}]
subscribeNext:^(id x){
   NSLog(@"%@",x);
  }];
可以直接写成

[[self.usernameTextField.rac_textSignal
  filter:^BOOL(NSString*text){
    return text.length > 3;
  }]
  subscribeNext:^(id x){
    NSLog(@"%@",x);
  }];


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

分开写就是

RACSignal的每个操作都会返回一个RACsignal,这在术语上叫做连贯接口(fluent interface)。这个功能可以让你直接构建管道,而不用每一步都使用本地变量。

RACSignal *usernameSourceSignal =
    self.usernameTextField.rac_textSignal;
  
RACSignal *filteredUsername =[usernameSourceSignal
  filter:^BOOL(id value){
    NSString*text = value;
    return text.length > 3;
  }];
  
[filteredUsername subscribeNext:^(id x){
  NSLog(@"%@",x);
}];

(编辑:李大同)

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

    推荐文章
      热点阅读