【发布时间】:2012-01-13 11:14:10
【问题描述】:
在我使用 cocos2d 的游戏中,我遇到了内存不足的最糟糕的情况。
我有 4 个场景。当我使用
切换场景时,两个从内存中消失[[CCDirector sharedDirector]replaceScene:sceneWithTransition]
我尝试过 push/pop,但它使问题恶化了大约 10 倍。
然而,其中 2 个场景就像病毒一样。我可以将它们从内存中删除的条件不存在。 我正在使用 ARC 更改。我希望他们会提供帮助,但他们没有。
我已经覆盖了清理方法,以确保我摆脱了对场景中所有内容的引用。第一个是游戏场景,我可以想象我可能会错过一些以某种方式保留在场景中的东西。然而另一个是设置场景。它有 5 个部分。他们都被扔了,但现场不会被清除。在转换为 ARC 之前,该应用程序无法使用,它经常崩溃,当它没有崩溃时,它的内存不足。在 ARC 之后,它的持续时间比以前长约 4 倍,但仍会定期耗尽内存。然而,崩溃几乎不存在。
我想首先,在场景之间切换的正确方法是什么? 其次,在使用 arch 时如何从内存中删除一些东西,因为 object = nil 什么都不做。我使用 ARC 的所有其他程序都像梦一样运行。他们都没有使用 cocos2d 引擎。自从引入 arc 以来,我没有看到内存错误,直到我犯了将我的quartz2d 游戏转换为 cocos2d 的错误。我不回到实际运行的平台的唯一原因是我真的很喜欢 cocos 中可能产生的效果,而我根本无法在石英中实现。
【问题讨论】:
标签: iphone ios memory cocos2d-iphone memory-leaks