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];
}];