我正在開發iOS應用程序,並遇到低內存警告問題。UIView retainCount爲0,但內存不釋放
我的應用程序正在點擊一個按鈕加載大量子視圖的大視圖。內存使用量增長,這是可以理解的(從30 Mb到80Mb)。但是,當用戶選擇另一個菜單項 - 這個視圖被釋放,但!該應用程序使用的內存量不會減少任何。我用下面的代碼來釋放視圖:
storeView.hidden = YES;
NSLog(@"%d", [storeView retainCount]);
[storeView removeFromSuperview];
storeView = nil;
的NSLog在第二行打印:1,所以釋放之後,應該解除分配。我的實現 - (void)dealloc;確實被調用(我在最後一行調用[super dealloc])。但在此之後,我仍然有低的記憶警告。
儀器發現只有幾個泄漏的NSStrings不可能導致記憶警告。
請問您有什麼建議嗎?
忘記retainCount屬性,永遠不要使用它 –
這是非常有益的,謝謝。任何其他建議?該對象確實被釋放 - 它的dealloc方法被調用。然而內存不被釋放。 –
內存消耗的不是視圖本身,而是視圖持有的對象。當你調用'dealloc'時,看看你是否釋放了視圖引用的對象。使用內存分析器運行,並查看內存的位置。 – dasblinkenlight