应用经常因为给某个已经释放的对象发送消息而引起崩溃,但Xcode一般只是提示这个示例的内存地址,比如17319 0x7fc1660这样,我们很难定位是那个对象,通过下面的方法,可以得到更多信息。
点击Xcode左上角 stop 按钮右边的工程名,选择 edit scheme,然后在Arguments标签页的Environment Variales下面添加如下几个参数:
NSDebugEnabled = YES;
NSZombieEnabled=YES;
MallocStackLoggingNoCompact=YES;
MallocStackLogging=YES;

之后,如果应用运行中出现前面的问题,我们就可以在控制台执行下面的命令:

shell malloc_history 17319 0x7fc1660
就能看到更多信息
本文介绍了一种在Xcode中解决iOS应用因已释放对象发送消息导致崩溃的方法。通过设置特定环境变量并使用命令行工具,可以获取更多关于引发崩溃的对象信息。

被折叠的 条评论
为什么被折叠?



