我在Apple示例应用程序和我正在处理的游戏中观察到类似的行为。在游戏中,行为最终会导致应用程序因内存不足而崩溃。示例应用程序是Touches。iPhone:在使用触摸的应用程序中稳步增加内存使用
在任何时候,当触摸被跟踪时,也就是当你在Touches中移动其中一个物体时,并且几乎在任何时候触摸在我的游戏中,内存使用量稳步增长,随着你继续移动触摸。一旦触摸序列完成,内存使用不会回落。我已经得到了Touches,它开始时使用的不到半个兆,在几分钟内玩到4MB的净分配。该内存永远不会被释放。
所以我的问题是:为什么这个内存永远不会被释放?我从根本上误解了什么?这是一个框架缺陷吗?我已经阅读了一些关于加速度计的问题并触及泄漏,但我在这个游戏中根本没有使用加速度计。
最近我在仪器上花了很多时间。事情是,所有未被释放的内存都是在库调用中分配和使用的内存。像事件处理基础设施使用的CFSets或者来自stringWithFormat:calls的NSString对象。如何解决事件处理系统不解除分配CFSet对象的问题?我从来没有任何访问这些。 – 2009-07-17 15:45:14
你是否保留这些对象? – Codebeef 2009-07-17 16:24:41
您是否在触控处理程序中保留了任何触控事件对象或任何对象? – Codebeef 2009-07-17 16:25:20