我在使用 cocos2d 的游戏中遇到了内存不足的绝对最糟糕的情况。
我有 4 个场景。当我使用
切换场景时,两个从内存中消失了[[CCDirector sharedDirector]replaceScene:sceneWithTransition]
我试过 push/pop,它使问题严重了 10 倍。
然而,其中 2 个场景就像病毒一样。我可以将它们从内存中删除的条件不存在。 我正在使用 ARC 改动。我希望他们能提供帮助,但他们没有。
我已经覆盖了清理方法以确保我摆脱了对场景中所有内容的引用。第一个是游戏场景,我可以想象我怎么可能错过了以某种方式坚持场景的东西。然而,另一个是设置场景。它有5个部分。他们都被扔了,但场景不会被清除。在转换为 ARC 之前,该应用程序无法使用,它经常崩溃,而当它没有崩溃时,它就会耗尽内存。在 ARC 之后,它的持续时间比以前长了大约 4 倍,但仍然经常耗尽内存。然而,崩溃几乎不存在。
我想首先,在场景之间切换的正确方法是什么? 其次,在使用 arch 时如何从内存中删除一些东西,因为 object = nil 什么都不做。我使用 ARC 的所有其他程序都像梦一样运行。他们都没有使用 cocos2d 引擎。自从引入 arc 以来,我从未见过内存错误,直到我错误地将我的 quartz2d 游戏转换为 cocos2d。我没有回到实际运行的平台的唯一原因是我真的很喜欢 cocos 中可能的效果,而我在 quartz 中根本无法实现。
最佳答案
cocos2d 好像有some issues with ARC that got fixed only recently .
我不知道这是否与你的内存问题有关,但你可能会检查你使用的是哪个cocos2d版本。
反正cocos2d好像要从2.0版本开始全面支持ARC。因此,您最好不要使用 ARC 并通过正确使用 release
来正确管理内存。据我所知,cocos2d没有内存问题,所以你应该可以完成。
关于iphone - cocos2d 使用内存块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8389969/