2

我一直在使用ReactiveCocoa了一段時間的值,但我一直在做這樣的:ReactiveCocoa轉換單個信號轉換成

// Assume match.status is an enum 
[RACAble(self.match.status) subscribeNext:^(NSNumber * matchStatusNum) { 
    // sets self.background.color and self.label.visible 
    [wself renderMatchStatus:matchStatusNum.intValue]; 
}]; 

但現在看來似乎會更好,直接綁定到我的東西關心。更多類似這樣的:

RACSignal * matchStatus = RACAble(self.match.status); 

RAC(self.background, color) = [matchStatus ???]; // expects a UIColor 
RAC(self.label, visible) = [matchStatus ???]; // expects a BOOL 

如何將信號轉換爲不同的東西?所有的例子使用combineLatest:reduce,但我只有一個信號,並減少和地圖投擲錯誤。

你會如何組織這個?

回答

2

的答案是使用map:

RAC(self.label.visible) = [matchStatus map:^(NSNumber*status) { 
    return @(status.intValue == MatchStatusStarted); 
}];