我在做什麼是我在後臺創建大量的UIView,並將它們保存在NSMutableArray中以備後用。但是,當我關閉視圖控制器時,我檢查Xcode中的內存,似乎有些內存沒有被釋放。我檢查了;視圖控制器正在被釋放。內存不被釋放,甚至解僱視圖控制器後調用dealloc方法
檢查請:
這happend幾個顯示和解聘視圖控制器之後。其中一些正在發佈,但並非全部。 謝謝。
我在做什麼是我在後臺創建大量的UIView,並將它們保存在NSMutableArray中以備後用。但是,當我關閉視圖控制器時,我檢查Xcode中的內存,似乎有些內存沒有被釋放。我檢查了;視圖控制器正在被釋放。內存不被釋放,甚至解僱視圖控制器後調用dealloc方法
檢查請:
這happend幾個顯示和解聘視圖控制器之後。其中一些正在發佈,但並非全部。 謝謝。
取消選中Edit Plan下的Enable Zombie Objects
選項。然後再試一次。
殭屍是已釋放的對象,而是將其引用仍然存在和消息仍然被髮送給它
我認爲這個鏈接對你 What is NSZombie?
哇!謝謝。我不知道。 – 2014-08-27 08:08:55
我會的。它不允許我很快接受。 :) – 2014-08-27 08:11:25
更多信息在dealloc方法釋放數組中的所有視圖。
叫下面的方法在您的控制器dealloc方法
- (void)releaseViewArray
{
// Releasing views in the array
for (UIView *view in _viewArray) {
[view release];
}
// Releasing the array that holding the views
[_viewArray release];
}
我想你使用的弧線,所以它可能是對的dealloc明確釋放這個有用。
-(void)dealloc {
for(UIView *vw in self.arrayOfViews) {
vw = nil;
}
self.arrayOfViews = nil;
}
使用dealloc有點像舊時代(弧前),但它會幫助您更好地管理內存。 !重要! - >在使用arc時不要致電[super dealloc];
!
你在項目中啓用了殭屍嗎? – Yogendra 2014-08-27 08:03:41
是的,它已啓用。 @Student – 2014-08-27 08:04:55