我有一个IBOutletCollection(TextFields)。我可以动态地收集所有rac_textSignals,但是现在我想减小那些信号的值,而又不知道RacTuple将具有多少个参数(出口集合可能有所不同)。

NSMutableArray *signals = [@[] mutableCopy];

[self.textFields enumerateObjectsUsingBlock:^(UITextField *textField, NSUInteger idx, BOOL *stop) {
    [signals addObject:textField.rac_textSignal];
}];
RACSignal *signal = [RACSignal combineLatest:signals];

如何实现呢?我找不到用CombineLatest:reduce或reduceEach:方法的方法。

提前致谢。

最佳答案

RACTuple是集合类型,因此,如果值的数量可变,则可以枚举它:

[[RACSignal
    combineLatest:signals]
    map:^(RACTuple *strings) {
        for (NSString *string in strings) {
            // Do whatever here.
        }

        return nil;
    }];

如果您想使用数组,还可以使用-allObjects方法。

08-05 22:22