2012-12-06 170 views
0

堆积显示对象未释放,同时日志显示调用了dealloc。我确实发布了所有属性并删除了dealloc中的所有超级视图。那么为什么内存仍然没有发布?对象在释放后没有释放

回答

1

如果dealloc叫,但内存支持的对象没有被公布,有两种可能性:

  1. 你没有在年底拨打[super dealloc]-dealloc(仅适用于非ARC代码)
  2. 您已启用僵尸。这可以通过仪器中的复选框(在ObjectAlloc仪器的配置中)或者通过Scheme编辑器中的诊断选项卡完成。
+0

是的,我打电话给[超级dealloc],我刚刚检查僵尸 - 他们到处都是残疾人。 –

+0

@flybirdx:什么让你觉得对象没有被释放?您确定您已将Instruments配置为仅显示活动对象吗? –

+0

是的,它们被配置为仅跟踪活动分配,而内存监视器显示内存消耗增长。最后 - 在150次迭代之后,它会在内存告警后崩溃。 –

1

你(假设你没有使用ARC)在dealloc方法结束时调用[super dealloc]?

+0

是的,我叫它。 –