【发布时间】:2013-03-29 12:56:26
【问题描述】:
我有两个表表控制器 A 和 B。 A 有一个项目列表,当单击一个项目时,它会推送到 B。 问题是,当显示 B 时,仪器指示实时内存增加,但当我单击后退按钮时它并没有减少。 B 中的 dealloc 方法已执行,但内存似乎略有变化。 我检查了 B 没有保留在其他任何地方,那么可能导致此问题的原因是什么?
在 B 中,有许多文本字段,标签是非原子的和强的。我用代码而不是使用 xibs 来绘制它们。如果我注释了初始化它们的代码并将它们添加到表头视图中,那么问题就消失了。
顺便说一下,我用的是 Arc 和模拟器 6.1。
【问题讨论】:
-
如果你正在做很多绘图,你确定要调用 CFRelease/CGRelease 等吗?当您在代码上运行静态分析器时会发生什么?
-
leaks工具是否报告了什么?另外,你在B上做什么?任何图像(使用imageNamed缓存)任何网络活动?你说的内存是多少?根据您在 B 中所做的事情,您不会看到实时字节数下降一点也不稀奇,因为 iOS 在幕后做了各种可能影响它的事情。我只担心(a)报告的泄漏; (b) 大量丢失在didReceiveMemoryWarning上未解除的“活动字节”。
标签: ios memory-management automatic-ref-counting