RAC

作者: xiari1991 | 来源:发表于2020-06-22 21:27 被阅读0次
    //监听,不需dealloc移除
    [RACObserve(self, name) subscribeNext:^(id  _Nullable x) {
        NSLog(@"%@",x);
    }];
    
    [self.textField.rac_textSignal subscribeNext:^(NSString * _Nullable x) {
        NSLog(@"%@",x);
    }];
    
    
    self.btn.rac_command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
            NSLog(@"%@", click);
            return [RACSignal empty];
        }];
    或者
    [[btn rac_signalForControlEvents:UIControlEventTouchUpInside]subscribeNext:^(__kindof UIControl * _Nullable x) {
            NSLog(@"点我了");
        }];
    
    //接收通知,不需dealloc移除
    [[[NSNotificationCenter defaultCenter]rac_addObserverForName:@"RACNotification" object:nil]subscribeNext:^(id x) {
            
            NSLog(@"%@",x);
            
        }];
    
    //cell中的btn,需要用到takeUntil
    [[[btn rac_signalForControlEvents:UIControlEventTouchUpInside]takeUntil:self.rac_prepareForReuseSignal] subscribeNext:^(__kindof UIControl * _Nullable x) {
            NSLog(@"点我了");
        }]];
    
    
    self.command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"RACNotification" object:@[@"rac  change"]];
            return [RACSignal empty];
        }];
    [self.command execute:@"111"];//手动触发。
    
     //合并两个输入框的信号量,并使用map对信号量返回值进行映射使其返回bool值
        self.loginParamBigSignal = [[RACSignal combineLatest:@[RACObserve(self, phoneStr),RACObserve(self, SMSCodeStr)]] map:^id _Nullable(RACTuple * _Nullable value) {
            RACTupleUnpack(NSString *phone , NSString *SMSCode) = value;
            //@()将值变量装箱成对象
            return @([phone length]>0 && [SMSCode length]>0);
        }];
    

    相关文章

      网友评论

          本文标题:RAC

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