美文网首页
RAC的学习

RAC的学习

作者: EdenChow | 来源:发表于2017-04-08 21:15 被阅读31次
    创建一个信号 (最简单RACSignal信号)
    RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber>  _Nonnull subscriber) {
            [subscriber sendNext:@"1"];
            [subscriber sendCompleted];
            return nil;
        }] ;
        
        [signal subscribeNext:^(NSString *  _Nullable x) {
            NSLog(@"---%@---",x);
        }];
    
    /// 或者  (UI控件状态绑定信号)
        RAC(self.loginButton,enabled) = signal;
    
    信号的聚合
    RACSignal *signal = [RACSignal combineLatest:
                                                     @[  _accountTextField.rac_textSignal,
                                                         _passwordTextField.rac_textSignal
                                                      ]
                                              reduce:^id (NSString *account, NSString *password){
                                                  
            return @(account.length && password.length);
        }];
        
        [signal subscribeNext:^(id  _Nullable x) {
            
            self.loginButton.enabled = [x boolValue];
            
        }];
    
    RAC (宏)
     RAC(self.titleLable,text) = self.accountTextField.rac_textSignal; // 控件绑定信号
    
    KVC (属性监听)
    RAC(self.titleLable,text) = self.accountTextField.rac_textSignal; // 绑定
        
        /// KVO
        [[RACObserve(self.titleLable, text) filter:^BOOL(NSString *  _Nullable value) {
            return value.length > 0;    // 有文字才执行
        }] subscribeNext:^(NSString *  _Nullable x) {
            NSLog(@"%@",x);
        }];
    

    相关文章

      网友评论

          本文标题:RAC的学习

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