ios - 切换回 ReactiveCocoa 中的主线程

标签 ios objective-c multithreading reactive-cocoa

我是 ReactiveCocoa 的新手,因此可能会错过一些明显的东西。 我在后台线程上安排了 2 个操作,完成后我想更新 UI,为此我需要切换回主线程,但我不知道如何操作。 这是代码片段。

-(RACSignal *)executeSigninSignal {
    return [[[self.services getAuthenticationService]
             authenticationSignalFor:self.username andPassword:self.password]
            //Return user if exists
            flattenMap:^RACStream *(STUser *user) {
                return [[[[self services] getContactsLoadService]
                 contactsLoadSignalForUser:user]
                //Return user contacts
               doNext:^(NSArray *contacts) {
                   STContactsListViewModel *contactsViewModel =
                   [[STContactsListViewModel alloc] initWithContactsLoadResults:contacts services:self.services];
                   [self.services pushViewModel:contactsViewModel];
               }];
            }];
}

authenticationSignalFor:contactsLoadSignalForUser: 是在后台线程上传递的 RACSignals,我想在主线程上执行 doNext block 的内容。

如何声明这个 block 应该在主线程上执行?

最佳答案

doNext: 方法之前使用 deliverOnMainThread 方法。

关于ios - 切换回 ReactiveCocoa 中的主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35888054/

相关文章:

C# 精确显示标签 X 秒并隐藏它 Y 秒

iphone - Airplay、Apple TV 和 Remote Events - 是否仅适用于流式音频/视频?

ios - 标签栏不出现

ios - 查找最大计数项目列表

ios - 通过上部(电话)扬声器播放音频

c - JSON C 库是线程安全的吗?

c# - 使用来自一个特定线程的对象

ios - 滚动 ViewController Swift

objective-c - 与类型 id<NSTextFieldDelegate> 不兼容

ios - UISplitViewController 不适用于 iPhone(5 或 6)