2011-07-29 122 views
0

我張貼到用戶的Facebook牆上用類似這樣的代碼:訪問Facebook對象委託?

[appDelegate.facebook requestWithGraphPath:@"me/feed" 
        andParams:params 
       andHttpMethod:@"POST" 
       andDelegate:self]; 

如果我解僱託管的UIViewController請求完成之前,我得到一個崩潰的要求並不實際完成時,因爲委託已dealloc'd。

有什麼辦法可以解決這個問題嗎?我真的不想讓像我的appDelegate FB委託這樣的高級對象,這看起來很愚蠢。

有問題的一個很好的說明,我這裏面臨:https://github.com/facebook/facebook-ios-sdk/issues/220

回答

0

在控制器的dealloc方法,Facebook的對象進行委託設爲零。在你的情況應該是這樣的:

- (void)dealloc { 
    appDelegate.facebook.sessionDelegate = nil; 
    [super dealloc]; 
} 

當請求完成後,委託方法將被調用的對象爲零,這將默默地吞下消息上。

這是一個很好的習慣,可以在任何時候將self設置爲任何對象的代表。

+0

這實際上並沒有解決我的問題,但它確實看起來像我的實際問題的答案,所以謝謝。我最終通過切換到ASIHttpRequest來解決我的問題。 –