内存没有被释放的权利,即使dealloc方法被解雇视图控制器之后调用(Memory not bein

2019-10-20 19:45发布

我在做什么是我在后台创建大量的UIView,并让他们在以后的NSMutableArray使用。 但是,当我关闭该视图控制器我检查在Xcode的记忆,似乎有些不内存被释放。 我检查了; 视图控制器被解除分配。

请检查:

这几个示出和驳回视图控制器后happend。 他们中有些人被释放,但不是全部。 谢谢。

Answer 1:

取消选中Enable Zombie Objects下编辑方案选项。 然后再试一次。

僵尸是已经解除分配的对象,而是将其引用仍然存在和消息仍然被发送给它的

我认为这个链接对你有更多的信息是什么NSZombie?



Answer 2:

我想你使用的弧线,所以它可能是对的dealloc明确释放这个有用。

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

使用的dealloc有点像旧时代(前弧),但它会帮助你管理内存更好。 !重要! - > NEVER调用[super dealloc]; 采用圆弧时!



Answer 3:

在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];
}


文章来源: Memory not being released right even dealloc method is called after dismissing view controller