2010-02-11 179 views
1

考慮一類的初始化劑以下代碼:內存管理

UIViewController* blankViewController=[[DisplayViewController alloc] 
        initWithNibName:@"Blank" bundle:nil]; 
self.nextView=blankViewController.view; 

nextView是使用保留的性質。請注意,blankViewController未發佈。如果它被釋放,這會導致崩潰,因爲視圖似乎沒有保留對viewController的引用。只要保留對視圖的引用,我就希望視圖控制器堅持到位。解決這種內存泄漏的最好方法是什麼?

回答

2

您需要將blankViewController存儲爲self的ivar,或者將其作爲(靜態)全局變量。

然後,當self被重新分配時,您可以撥打[blankViewController release]

您需要這樣做,因爲沒有其他(記錄)的方式從視圖中獲取視圖控制器。