1

每次我推新視圖控制器時,它都會增加大約3MB。 TestVC是推出新版VC的一種全新VC。推送UIViewController時內存泄漏

UIViewController *vc = [[TestVC alloc] initWithNibName:nibName bundle:nil]; 
    [self.navigationController pushViewController:vc animated:YES]; 
    [vc release]; 

當我popviewController,它不釋放任何內存(看活動監視器)。

[self.navigationController popViewControllerAnimated: YES]; 

因此,我通過添加應用程序(約60個不同的網頁)導航,內存不斷建立。 initWithNibName是否需要特殊的東西。當我彈出時,是否需要以某種方式釋放筆尖?

+0

你在那裏做什麼沒有問題。你確定這個問題不是歸因於別的嗎? – David 2011-03-14 16:52:47

+0

TestVC是什麼樣的?你釋放所有的屬性嗎?那裏沒有其他內存泄漏?正如David所說,您添加/刪除視圖控制器的方式沒有任何問題。 – 2011-03-14 16:56:48

+0

TestVC是一個空的VC,除了一個調用pushViewController代碼的IBAction。 XIB文件有一個按鈕和背景圖像。 – smcdrc 2011-03-14 21:54:22

回答

2

最可能的問題是-[TestVC dealloc]release失敗。我會首先通過檢查來評估該方法。如果找不到問題,請使用儀器中的泄漏儀器來查找過度保留的特定事項。如果Leaks找不到它,請使用Instruments中的heapshot工具查看分配的內容。有了這麼大的東西,應該很容易找到。有關Use Your Loaf使用Heapshot的快速概述。

+1

在診斷這件事時,我會首先使用堆照片。另請參閱Bill Bumgarner在此的文章:http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find -undesirable存儲器生長/ – 2011-03-14 18:49:27