2012-10-19 55 views
2

我有三個UIViewControllers和他們的所有dealloc方法,每當我解僱他們時被調用。這正是我想要發生的事情,以便內存不會膨脹。Dealloc調用但活內存不減

但是,當我運行配置文件來測試內存使用情況和一些泄漏時,我注意到即使調用了dealloc,活動內存也不會以某種方式降低。更重要的是,當我從一個UIViewController切換到另一個(這是預期的方式)時,它會不斷增加。有時會減少,但只有少數內存會減少。

我確信每個UIViewControllers的dealloc方法都被調用,因爲我在方法中放入了一個日誌。此外,當我使用Profile時沒有記錄到泄漏。

那麼任何人都可以解釋爲什麼內存不會減少?

+0

希望你打電話給[super dealloc];在你的dealloc方法..我不認爲任何人都可以進一步幫助你沒有看到你的代碼... – Krishnabhadra

+0

即使'dealloc'被調用,這並不意味着你的內存將被立即釋放。這取決於自動釋放週期和您的實施。 –

+0

我剛剛意識到這一點。它的內存緩慢下降,好像分配的內存不會一次全部釋放。 –

回答

1

正如別人所說,沒有看到你的代碼是有點難以弄清楚發生了什麼事。所以相反,我會離開你關於分析使用儀器的堆的文章this & this