2013-07-04 62 views
0
[[FHSTwitterEngine sharedEngine]showOAuthLoginControllerFromViewController:self withCompletion:^(BOOL success) { 

     if(success){ 

      [self performSelector:@selector(goToHome:) withObject:@"twitter"]; 
     } 
    }]; 

在goToHome方法我簡單地發送用戶到其他屏幕後保存一些數據。但goToHome方法不會從完成處理程序獲取調用。執行完成處理程序內的選擇器不工作?

+0

嘗試__performSelectorOnMainThread:__ –

+0

對不起,我的回答是錯誤的。我刪了它。我必須睡得更多:) – FreeNickname

+0

你能更具體地瞭解會發生什麼嗎? –

回答

1

試試這個

[[FHSTwitterEngine sharedEngine]showOAuthLoginControllerFromViewController:self withCompletion:^(BOOL success) { 

    if(success){ 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      [self performSelector:@selector(goToHome:) withObject:@"twitter"]; 
     }); 
    } 
}]; 
+0

它的工作.. :)感謝你和每個人參與和幫助。 –

+0

我想弄清楚它與performSelectorOnMainThread的不同之處。你有什麼主意嗎? –

+0

這是performSelectorOnMainThread的新方法,這個叫GCD,Grand Central Dispatch ... – Rajneesh071

0

如果您沒有任何對象可以通過,那麼只需通過零,如果您有任何對象可以通過此方法,則傳遞該對象。現在你傳遞一個字符串而不是對象,如果你需要傳遞一個字符串類型的對象,那麼它應該工作正常,否則就有問題。

所以通過所需的對象或只是零,它會工作。

+0

當我在使用以下代碼之前,它正在工作: - - (void)TwitterRequestSuccessfully:(BOOL)成功{ 如果(成功){0}自動執行選擇器:@selector(goToHome :) withObject:@「twitter」] ; } } –

0

你甚至可以嘗試了這一點:

[自performSelectorOnMainThread:@selector(goToHome :) @ 「推特」 waitUntilDone:YES];

相關問題