切换回ReactiveCocoa中的主线程

时间:2016-03-09 09:48:06

标签: 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块的内容。

如何声明该块应该在主线程上执行?

1 个答案:

答案 0 :(得分:1)

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