2013-11-27 37 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

對,謝謝!剛開始使用活性可可,仍然與一些概念混淆 –