Map : 映射
1 2 3 4 5 6 7 8 9 10 11 12 |
UITextField *textField =[[UITextField alloc]initWithFrame:CGRectMake(100, 100, 100, 40)]; textField.backgroundColor =[UIColor redColor]; [self.view addSubview:textField]; [[textField.rac_textSignal map:^id(NSString * value) { return @(value.length); }] subscribeNext:^(NSNumber * x) { NSLog(@"%@",x); }]; |
输入Ricky:
结果:
结果
filter: 过滤
1 2 3 4 5 6 7 8 9 10 |
//只有当text.length>3的时候才会订阅改消息 [[textField.rac_textSignal filter:^BOOL(NSString * text) { return text.length>3; }] subscribeNext:^(id x) { NSLog(@"%@",x); }]; |
同样输入Ricky结果就是:
delay:延时
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//延时2秒发送消息 RACSignal *signal = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { [subscriber sendNext:@"Ricky"]; [subscriber sendCompleted]; return nil; }] delay:2]; [signal subscribeNext:^(id x) { NSLog(@"%@",x); }]; |
startWith:在发送消息之前,先发送一个消息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
RACSignal *signal = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { [subscriber sendNext:@"Ricky"]; [subscriber sendCompleted]; return nil; }] startWith:@"RAC"]; [signal subscribeNext:^(id x) { NSLog(@"%@",x); }]; |
timeout :超时
输入Ricky:
结果:
结果
filter: 过滤
1 2 3 4 5 6 7 8 9 10 |
//只有当text.length>3的时候才会订阅改消息 [[textField.rac_textSignal filter:^BOOL(NSString * text) { return text.length>3; }] subscribeNext:^(id x) { NSLog(@"%@",x); }]; |
同样输入Ricky结果就是:
delay:延时
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//延时2秒发送消息 RACSignal *signal = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { [subscriber sendNext:@"Ricky"]; [subscriber sendCompleted]; return nil; }] delay:2]; [signal subscribeNext:^(id x) { NSLog(@"%@",x); }]; |
startWith:在发送消息之前,先发送一个消息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
RACSignal *signal = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) { [subscriber sendNext:@"Ricky"]; [subscriber sendCompleted]; return nil; }] startWith:@"RAC"]; [signal subscribeNext:^(id x) { NSLog(@"%@",x); }]; |