2010-05-19 47 views
0

我應該在哪個UIViewController方法中將視圖控制器的所有出現設置爲一個委託?它是viewDidUnload(太早?),dealloc(太晚?)或其他?什麼時候停止UIViewController接收委託調用

+0

咦?你的UIViewController符合什麼樣的委託協議? – 2010-05-19 22:26:22

+0

任何協議。通用問題。 – hpique 2010-05-19 22:28:17

回答

0

爲避免EXC_BAD_ACCESS,您應該在dealloc中將委託屬性設置爲零。這可以確保其他對象在處理完畢後不會嘗試將委託消息發送給對象。例如,如果你的UIViewController有一個web視圖屬性,它是一個UIWebViewDelegate,你應該做的:

- (void)dealloc { 
    self.webView.delegate = nil; 
    self.webView = nil; // assuming @property (nonatomic, retain), or use [webView release] if you prefer. 
    [super dealloc]; 
} 

你可以設置委託給無早,如果你想停止接收其他一些原因委託的消息,但如果您只是試圖避免EXC_BAD_ACCESS,則沒有必要。

相關問題