Ios 在实际需要频繁释放大量内存的应用程序中长时间使用NSZombies

Ios 在实际需要频繁释放大量内存的应用程序中长时间使用NSZombies,ios,objective-c,xcode,cocos2d-iphone,nszombie,Ios,Objective C,Xcode,Cocos2d Iphone,Nszombie,在我使用cocos2d iphone的游戏中,偶尔会出现EXC\u BAD\u ACCESS错误 发生这种情况时,Xcode会执行以下任一操作: 显示main.m文件,没有堆栈回溯等 在cocos2d iphone的框架中显示一个部件,用于处理与CCMenu相关的触摸。这当然表明这是我的ccmen实例之一导致了问题-但是,我找不到哪一个,因为出于某种原因,回溯似乎仅限于框架的这一区域:基本上,回溯不会显示我的错误,因为它不包括我自己的代码,只有CoCoCos2D iphone——我相当肯定是我

在我使用
cocos2d iphone的游戏中,偶尔会出现
EXC\u BAD\u ACCESS
错误

发生这种情况时,Xcode会执行以下任一操作:

  • 显示main.m文件,没有堆栈回溯等
  • cocos2d iphone
    的框架中显示一个部件,用于处理与
    CCMenu
    相关的触摸。这当然表明这是我的
    ccmen
    实例之一导致了问题-但是,我找不到哪一个,因为出于某种原因,回溯似乎仅限于框架的这一区域:基本上,回溯不会显示我的错误,因为它不包括我自己的代码,只有
CoCoCos2D iphone——我相当肯定是我的代码导致了这个问题 运气不好,我决定试试这个
NSZombie
东西。我去了方案菜单,检查了僵尸部分

从我所读到的,它所做的是永远不会释放任何东西。通过这种方式,它可以告诉我我的对象是什么,而我不应该访问它

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

现在,你可以说这没什么大不了的,因为我所要做的就是找到错误,修复它,禁用僵尸并结束一天-几分钟就足够了

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


因此,我希望在尝试重现错误时,能够长时间启用僵尸,这可能是不可能的,因为我的应用程序可能会因为长时间不释放内存而崩溃。我该怎么办?

我很确定,如果同时打开
NSDeallocateZombies
,对象最终会被释放。

在模拟器(调试)模式下保持Zombies活动应该没问题。我尝试了iOS音频录制和播放应用程序,但该应用程序没有崩溃,内存使用率至少达到2 GB(启用了NSZombie)。事实上,我在“调试”模式下启用了此标志,没有任何此类问题。