reduce
语法
RACSignal *combinedSignal = [RACSignal combineLatest:@[signal1, signal2, ...]
reduce:^id (id value1, id value2, ...) {
// 处理逻辑,返回值将作为新信号的输出
return result;
}];参数解释
示例:组合账户和密码的验证
// 假设已有 accountTextField 和 passwordTextField
RACSignal *accountSignal = self.accountTextField.rac_textSignal;
RACSignal *passwordSignal = self.passwordTextField.rac_textSignal;
// 使用 combineLatest:reduce: 组合并验证输入
RACSignal *validSignal = [RACSignal combineLatest:@[accountSignal, passwordSignal]
reduce:^id (NSString *account, NSString *password) {
return @(account.length > 0 && password.length >= 6);
}];
// 绑定按钮的 enabled 属性到 validSignal
RAC(self.submitButton, enabled) = validSignal;代码解析
其他应用场景
总结
Last updated