0
我應該在哪個UIViewController方法中將視圖控制器的所有出現設置爲一個委託?它是viewDidUnload(太早?),dealloc(太晚?)或其他?什麼時候停止UIViewController接收委託調用
我應該在哪個UIViewController方法中將視圖控制器的所有出現設置爲一個委託?它是viewDidUnload(太早?),dealloc(太晚?)或其他?什麼時候停止UIViewController接收委託調用
爲避免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,則沒有必要。
咦?你的UIViewController符合什麼樣的委託協議? – 2010-05-19 22:26:22
任何協議。通用問題。 – hpique 2010-05-19 22:28:17