iOS开发之RAC---ReactiveCocoa

本文详细介绍了ReactiveCocoa框架中的RACSignal概念,包括冷信号与热信号的区别,以及如何使用RACCommand进行事件处理。通过示例展示了如何监听成员变量变化、UITextField值的改变,以及使用RACSequence和RACTuple进行字典转模型操作。此外,还讨论了RACSignal的订阅者、可弃用对象和RACSubject的使用场景。
摘要由CSDN通过智能技术生成

1.监听成员变量变化,当成员变量值被改变时触发,其实就是KVO机制使用场景,
通常有三个步骤

  <1>. 给对象的成员变量添加监听
  <2>. 实现监听回调
  <3>. 取消监听;

而通过 RAC也可以实现,RAC的回调是通过block实现的

egOne: 值变化时发送一个请求,每次值被修改时就会调用此block,并把修改后的参数传进来

    [RACObserve(self, self.navigationTitle) subscribeNext:^(NSString *x) {
        [self questWithData];
}];

egOne:当一个titile为标题时发送请求

  [[RACObserve(self, self.navigationTitle)
filter:^(NSString* value) {
    if ([value hasPrefix:@"标题"]) {
        return YES;
    } else { return NO;
    }
}]
subscribeNext:^(NSString * x) {
    [self requestWithData];
}];

egThree:关于textfield的处理
平常我们检测textfield的变化都是这样

 [self.accountText addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
- (void)textFieldDidChange:(UITextField *)textField {
if (textField == self.textfield ) {
    if (self.textfield.length >= 11 ) {
    [self requestWithData];
    } else {
       return NO;
    }
   }
}

现在我们使用RAC监听textfield的值的变化
// filter:满足了某一条件才往下执行,通过条件才执行subscribeNext 这个block,才执行下一步
[[self.textField.rac_textSignal filter:^(NSString *value) {
if (value.length != 13) {
return NO;
} else { return YES; }
}]
subscribeNext:^(NSString *x) {
[self requestWithData];
}];

egFour:
// 监听多个变量变化,当变量满足条件时,使button为可点击状态

    [[RACSignal
  combineLatest:@[self.nameText.rac_textSignal,
                  self.passText.rac_textSignal,
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值