2013-11-27 62 views
4

我有一个IBOutletCollection(TextFields)。我可以动态地收集所有的rac_textSignals,但是现在我想在不知道RacTuple会有多少参数的情况下(outlet集合可能会有所不同)来减少这些信号的值。从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:方法的方式。

在此先感谢。

回答

3

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

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

     return nil; 
    }]; 

还有一个-allObjects方法,如果你愿意与一个数组来工作,而不是。

+0

对,谢谢!刚开始使用活性可可,仍然与一些概念混淆 –