4

我有一个 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: 方法的方法。

提前致谢。

4

1 回答 1

3

RACTuple是一个集合类型,所以如果有可变数量的值,你可以枚举它:

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

        return nil;
    }];

-allObjects如果您更喜欢使用数组,还有一种方法。

于 2013-11-27T18:00:57.580 回答