内存不被释放,甚至解散视图控制器之后调用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]; }