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

shell malloc_history 17319 0x7fc1660
就能看到更多信息