美文网首页
(八)、iOS RAC -RACSignal 中 bind 的用

(八)、iOS RAC -RACSignal 中 bind 的用

作者: Buddha_like | 来源:发表于2019-03-25 17:37 被阅读0次
    /**
 RACSignal的bind的主要过程如下:
 
 创建一个RACSignal的数组,把初始signal添加进去,如果该数组为空,发送complete;数组中任意的signal出现error,都会发送error;数组中   任意的signal出现complete,都会让该数组删除该signal。
 订阅初始Signal,获得初始Signal中所有的value,error,complete信息。
 接受到value之后,通过RACStreamBindBlock这个block执行获得一个新的Signal,将这个Signal添加到数组中,并订阅这个signal。这个RACStreamBindBlock执行中会带一个BOOL值,如果BOOL值变成YES,初始Signal的订阅就结束了。
 //参考网址:https://blog.csdn.net/chenyin10011991/article/details/52383433
 */
 
- (void)bindOne {
    
    [self.view addSubview:self.textField];
    [[_textField.rac_textSignal bind:^RACSignalBindBlock {

        /**
         什么时候调用:
         block作用:表示绑定了一个信号.
         */
        return ^RACSignal *(id value, BOOL *stop){
            /**
             什么时候调用block:当信号有新的值发出,就会来到这个block。
             block作用:做返回值的处理
             做好处理,通过信号返回出去.
             */
            return [RACReturnSignal return:[NSString stringWithFormat:@"输出:%@",value]];
        };
    }] subscribeNext:^(id x) {
        NSLog(@"%@",x);
    }];
}

- (UITextField *)textField {
    
    if (!_textField) {
        _textField = [[UITextField alloc] init];
        _textField.frame = CGRectMake(50, 200, 250, 60);
        _textField.backgroundColor = [UIColor grayColor];
    }
    return _textField;
}

相关文章

网友评论

      本文标题:(八)、iOS RAC -RACSignal 中 bind 的用

      本文链接:https://www.haomeiwen.com/subject/nhmbvqtx.html