考虑ReactiveCocoa Introduction中的一个示例(转述),它根据.password
和.passwordConfirm
text 字段是否匹配来启用:
RAC(self.enabled) = [RACSignal
combineLatest:@[ RACAble(self.password), RACAble(self.passwordConfirm) ]
reduce:^(NSString *password, NSString *passwordConfirm) {
return @([passwordConfirm isEqualToString:password]);
}];
在这里,我们在编译时知道我们正在组合多少和什么东西,并且将“组合”数组解构/映射为 reduce 块的多个参数很有用。那什么时候行不通。例如,如果你想:
RAC(self.enabled) = [RACSignal
combineLatest:arrayOfSignals
reduceAll:^(NSArray *signalValues) { // made this up! don't try at home.
// something ...
}];
你如何用ReactiveCocoa做到这一点?
更新:接受的答案的评论有助于解释我所缺少的。