2012-12-06 167 views
0

堆積顯示對象未釋放,同時日誌顯示調用了dealloc。我確實發佈了所有屬性並刪除了dealloc中的所有超級視圖。那麼爲什麼內存仍然沒有發佈?對象在釋放後沒有釋放

回答

1

如果dealloc叫,但內存支持的對象沒有被公佈,有兩種可能性:

  1. 你沒有在年底撥打[super dealloc]-dealloc(僅適用於非ARC代碼)
  2. 您已啓用殭屍。這可以通過儀器中的複選框(在ObjectAlloc儀器的配置中)或者通過Scheme編輯器中的診斷選項卡完成。
+0

是的,我打電話給[超級dealloc],我剛剛檢查殭屍 - 他們到處都是殘疾人。 –

+0

@flybirdx:什麼讓你覺得對象沒有被釋放?您確定您已將Instruments配置爲僅顯示活動對象嗎? –

+0

是的,它們被配置爲僅跟蹤活動分配,而內存監視器顯示內存消耗增長。最後 - 在150次迭代之後,它會在內存告警後崩潰。 –

1

你(假設你沒有使用ARC)在dealloc方法結束時調用[super dealloc]?

+0

是的,我叫它。 –