Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Xcode:NSZombie未捕获错误_Iphone_Objective C_Xcode_Nszombie - Fatal编程技术网

Iphone Xcode:NSZombie未捕获错误

Iphone Xcode:NSZombie未捕获错误,iphone,objective-c,xcode,nszombie,Iphone,Objective C,Xcode,Nszombie,可能重复: 由于以下消息,我的游戏有时会崩溃: malloc: *** error for object 0x65cfcd4: incorrect checksum for freed object - object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug 因此,按照建议,我在instruments中运行了分配工具,尝试查找泄漏并启用NSZombi

可能重复:

由于以下消息,我的游戏有时会崩溃:

malloc: *** error for object 0x65cfcd4: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
因此,按照建议,我在instruments中运行了分配工具,尝试查找泄漏并启用NSZombie检测。它说它正在检查行刑期间是否有僵尸

但是应用程序崩溃了,什么都没有被捕获

有什么理由让僵尸抓不到它吗


谢谢。

建议不要启用僵尸,僵尸只是Objective-C,malloc,
realloc
free
是C方式分配内存,僵尸工具不会捕获这些错误。在
malloc\u error\u break
中设置断点,并查看堆栈跟踪以解决错误

不用太花哨,您可以删除所有的
free
调用,看看它是否解决了问题。如果您的项目规模不大,那么这可能比您将使用的任何“专业工具”都要快。如果它解决了问题,只需逐个插入
免费
呼叫,答案就会显而易见


如果您使用cocos2d,只需删除所有这些“免费”呼叫。C内存分配很容易出错。

您好。我已经这样做了,但是堆栈没有显示任何有用的内容。所有包含的方法都不是我的。好的,请稍候,它现在显示了一些关于cocos2d的内容。似乎您要释放的对象的内存被其他内容覆盖了。你不能用僵尸来解决这个问题——这个物体仍然在那里,只是有别的东西弄乱了它。有什么特别的指针吗?无边界检查的C-数组?铸造?我使用的是cocos2d,对不起,你的意思是删除所有版本?它相当大…等等,你想让他在一个没有内存交换和物理内存相当有限的设备上泄漏内存(可能有很多内存@JustSid他可能在模拟器中运行。如果它真的帮助他找到了问题,谁在乎我们是否暂时打破了自由记忆的教条?(这并不是说桌面应用程序更容易接受内存泄漏,因为任何有价值的项目都是可以接受的。)