我使用的是ReactiveCocoa 2.5,因为我需要支持iOS 7.我是ReactiveCocoa的新手。我写了这段代码:
__weak typeof(self) weakSelf = self;
[RACObserve(_currentUser, username) subscribeNext:^(NSString *newUsername) {
[weakSelf performSelector:@selector(saveUserChanges) withObject:nil afterDelay:.1];
}];
立即调用subscribeNext
块。致电_currentUser
后,username
的{{1}}财产未发生变化。也许它的正常行为和RACObserve subscribeNext
应该在开始观察后第一次被调用?如果这是正常的我怎么能避免这种情况?
答案 0 :(得分:4)
是的,这是正常的 - 通过RACObserve
创建的信号将始终立即发送其初始值。如果您只想要后续值,则可以跳过初始值,如下所示:
[[RACObserve(_currentUser, username) skip:1] subscribeNext:^(NSString *newUserName) {
[weakSelf performSelector:@selector(saveUserChanges) withObject:nil afterDelay:.1];
}];