RACOberve subscribeNext performSelector:afterDelay: 未调用
RACObserve subscribeNext performSelector:afterDelay: not called
我正在使用 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];
}];
第一次当代码到达 performSelector
时一切正常,saveUserChanges
方法在延迟后被调用。但是随后代码多次到达相同的 performSelector
行,但 saveUserChanges
方法再也不会被调用。我的代码有什么问题?
也许你的weakSelf被释放了。确保块中的 weakSelf 不为 nil。
当你在块中使用弱对象时,最好像这样再次加强它:
@weakify(self);
[RACObserve(_currentUser, username) subscribeNext:^(NSString *newUsername) {
@strongify(self);
[self performSelector:@selector(saveUserChanges) withObject:nil afterDelay:.1];
}];
我正在使用 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];
}];
第一次当代码到达 performSelector
时一切正常,saveUserChanges
方法在延迟后被调用。但是随后代码多次到达相同的 performSelector
行,但 saveUserChanges
方法再也不会被调用。我的代码有什么问题?
也许你的weakSelf被释放了。确保块中的 weakSelf 不为 nil。
当你在块中使用弱对象时,最好像这样再次加强它:
@weakify(self);
[RACObserve(_currentUser, username) subscribeNext:^(NSString *newUsername) {
@strongify(self);
[self performSelector:@selector(saveUserChanges) withObject:nil afterDelay:.1];
}];