0

在我的EXC_BAD_ACCESS游戏中使用cocos2d-iphone.

当它发生时,Xcode 会执行以下任一操作:

  • 显示 main.m 文件,没有堆栈回溯等。
  • 向我展示cocos2d-iphone's 框架中处理与CCMenu. 这当然表明我的CCMenu实例之一是导致问题的原因 - 但是,我找不到哪个实例,因为由于某种原因,回溯似乎仅限于框架的这一区域:基本上,回溯不会向我显示我的错误,因为它不包括我自己的代码,只有cocos2d-iphone's - 我相当肯定是我的代码导致了问题。

运气不好,我决定试试这个NSZombie东西。我去了方案菜单并检查了僵尸部分。

从我读过的内容来看,它所做的并不是发布任何东西。通过这种方式,它可以告诉我我不应该访问的对象是什么。

这听起来是个不错的计划。但它让我担心的是它永远不会释放内存。我的应用程序是一个游戏,它会加载大量纹理等,事实上,每次访问新地图时它都需要释放大量纹理。如果我的应用程序不会发布任何这些,我相信它会在玩几分钟后崩溃,因为它是一款图形非常繁重的游戏。

现在,你可以说这没什么大不了的,因为我所要做的就是找到错误,修复它,然后禁用 Zombies 并收工 - 几分钟就足够了......

...但是,不幸的是,我对如何重现此错误一无所知。事实上,我已经花了几个小时试图重现它。我唯一的线索是它可能与我的游戏中的一个CCMenu实例有关,但我游戏的几乎每个方面都是一个CCMenu实例。

因此,我希望在尝试重现错误时长时间启用 Zombies,这可能是不可能的,因为我的应用程序可能会因为很长一段时间没有释放任何内存而崩溃。我该怎么办?

4

1 回答 1

1

我很确定如果你也打开NSDeallocateZombies,这些对象最终会被释放。

于 2013-10-23T03:58:39.187 回答