2016-03-09 45 views
1

我是ReactiveCocoa的新手,因此可能會錯過顯而易見的東西。 我有兩個操作計劃在後臺線程,並且他們完成後我想更新用戶界面,爲此我需要切換回主線程,但我不知道如何。 這是一段代碼。切換回ReactiveCocoa的主線程

-(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

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

+0

的確,我嘗試使用'deliverOnMainThread',但不是在正確的地方 – mjonka