我正在處理viewDidUnload和dealloc方法,並在調用[super dealloc]時創建了一個問題;在父視圖控制器中。iPhone:在parentViewController上調用dealloc導致異常
我有很多視圖控制器的自定義代碼,我把它們放在父視圖控制器之外。所以,限定我的視圖控制器,當我設置到超類的引用:
@interface LoginViewController : AbstractViewController
然後,在dealloc方法我稱之爲AbstractViewController dealloc方法:
//(Login View Controller code)
- (void)dealloc {
[user release];
[passwd release];
[super dealloc];
}
[超級的dealloc]中執行以下代碼:
//(Abstract View Controller code)
- (void)dealloc {
[dbUtils release];
[loadingView release];
[super dealloc];
}
如果我模擬內存在iPhone模擬器警告,下面的異常被拋出:
2010-03-03 11:27:45.805 MyApp[71563:40b] Received simulated memory warning.
2010-03-03 11:27:45.808 MyApp[71563:40b] *** -[LoginViewController isViewLoaded]: message sent to deallocated instance 0x13b51b0
kill
quit
但是,如果我評論AbstractViewController中的[super dealloc]行,則不會引發異常,並且我的應用程序仍在運行。
再次感謝您的幫助!
什麼是加載視圖? – willcodejavaforfood 2010-03-03 10:42:47
是在AbstractViewController initWithNib中初始化的另一個viewController ...與self.loadingView = [[UIViewController alloc] initWithNibName:@「LoadingViewController」bundle:nil]; – arielcamus 2010-03-03 10:49:09