ReactiveCocoa线程问题。

我在我的项目中将ReactiveCocoa和KVNProgress混合使用,结果出现各种线程问题。KVNProgress经常结束不掉,然后界面就卡死在那里了。

代码如下:

 @weakify(self);
[RACObserve(self.viewModel, isFetching) subscribeNext:^(NSNumber * isFetching) {
    @strongify(self);
    if ([isFetching boolValue]) {
        if (self.viewModel.fetchingMessage)
            dispatch_async(dispatch_get_main_queue(), ^{
                [KVNProgress showWithStatus:self.viewModel.fetchingMessage];
            });
    } else {
        dispatch_async(dispatch_get_main_queue(), ^{
            [KVNProgress dismiss];
        });
    }
}];

[RACObserve(self.viewModel, error) subscribeNext:^(NSString * error) {
    if (error)
        dispatch_async(dispatch_get_main_queue(), ^{
            [KVNProgress showErrorWithStatus:error];
        });
}];

[RACObserve(self.viewModel, success) subscribeNext:^(NSString * success) {
    if (success)
        dispatch_async(dispatch_get_main_queue(), ^{
            [KVNProgress showSuccessWithStatus:success];
        });
}];

我每个KVNProgress都是在main线程里面跑的,结果还是出现context不一致KVNProgress结束不掉的情况。
请教一下各路大神这个情况怎么解决?

阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进