内存不被释放,甚至解散视图控制器之后调用dealloc方法

我在做什么是我在后台创build大量的UIView,并保存在一个NSMutableArray以后使用。 但是,当我closures视图控制器我检查内存在Xcode中,似乎有些内存不被释放。 我检查了; 视图控制器正在被释放。

请检查: 在这里输入图像说明

几次显示和解散视图控制器后,这发生。 其中一些正在被释放,但不是全部。 谢谢。

在Edit Scheme下取消选中Enable Zombie Objects选项。 然后再试一次。

僵尸是一个被释放的对象,但是它的引用仍然存在,消息仍然被发送给它

我想这个链接有更多的信息给你NSZombie是什么?

我想你使用弧,所以它可能是有用的显式释放这dealloc。

 -(void)dealloc { for(UIView *vw in self.arrayOfViews) { vw = nil; } self.arrayOfViews = nil; } 

使用dealloc有点像旧时代(前弧),但它会帮助你更好地pipe理内存。 !重要! – >绝不会调用[super dealloc]; 使用弧时!

在dealloc方法释放你在数组中的所有视图。

在你的controller dealloc方法中调用下面的方法

 - (void)releaseViewArray { // Releasing views in the array for (UIView *view in _viewArray) { [view release]; } // Releasing the array that holding the views [_viewArray release]; }