使用ReactiveCocoa和KVO,如果您訂閱了某些內容,它會在您更改綁定的值時立即通知訂閱者。比方說,我的狀態取決於user.firstName和user.lastName:直到代碼完成後纔等待ReactiveCocoa中的訂閱者通知?
RAC(self.fullName) = [RACSignal
combineLatest:@[RACAble(self.firstName), RACAble(self.lastName)]
reduce:^(NSString* firstName, NSString* lastName) {
return [NSString stringWithFormat:@"%@ %@", firstName, lastName];
}];
self.firstName = @"Bob";
self.lastName = @"Wilson";
self.firstName = @"Amy";
self.lastName = @"Johnson";
// ...
- (void)setFullName:(NSString*)fullName
{
NSLog(@"FULL NAME %@", fullName);
// Bob Wilson
// Amy Wilson
// Amy Johnson
}
只要這兩個變量的設置,它調用setFullName我改變要麼firstName
或lastName
各一次。
我希望它等到修改完成後才能調用全名,因此,如果我將這些值設置爲同樣的函數,那麼它會調用setFullName
一次並顯示最終值。
我該怎麼做?
該示例只是設法顯示的問題,它通常是我想更新一些視圖狀態基於幾個屬性 –
我想也許最大的問題是我無法弄清楚在哪裏找到這樣的東西?我正在遍尋ReactiveCocoa github頁面,我找不到'throttle:'記錄在任何地方。它在哪裏? –
如有疑問,請使用查找功能。 'throttle:'在RACSignal + Operations類別中。該文檔位於頭文件中。關於文件:是的,開始時有點難以設想,而且通常只有在你工作了一段時間之後纔會有意義。當您在源代碼或維基中找不到您要搜索的內容時,請前往SO,提出問題或向項目回購提交問題。無論何時,你都可以向他們提供優質的信息。真的很棒。 – allprog