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
Objective c EXC主通道中的错误访问_Objective C_Ios - Fatal编程技术网

Objective c EXC主通道中的错误访问

Objective c EXC主通道中的错误访问,objective-c,ios,Objective C,Ios,我有一个有害的EXC\u BAD\u访问错误。我已经启用了僵尸跟踪功能,但是程序并没有生成特定的堆栈跟踪,而是始终在主窗口停止 返回UIApplicationMainargc、argv、nil、NSStringFromClass[AppDelegate类] 有人知道为什么我没有有意义的堆栈跟踪吗?该应用程序使用核心数据,并且大部分核心数据活动都是在performBlockAndWait方法中包装的——这可能与此有关吗 我还有一条来自NSZombieEnabled的日志消息,上面写着***-[[u

我有一个有害的EXC\u BAD\u访问错误。我已经启用了僵尸跟踪功能,但是程序并没有生成特定的堆栈跟踪,而是始终在主窗口停止 返回UIApplicationMainargc、argv、nil、NSStringFromClass[AppDelegate类]

有人知道为什么我没有有意义的堆栈跟踪吗?该应用程序使用核心数据,并且大部分核心数据活动都是在performBlockAndWait方法中包装的——这可能与此有关吗

我还有一条来自NSZombieEnabled的日志消息,上面写着***-[[u PFArray release]:发送到解除分配实例0x395d0fe0的消息。有没有办法找出日志消息中的地址最初分配了什么


谢谢

是的,有。在模拟器上使用he仪器运行应用程序。选择Zombies工具并执行使应用程序崩溃的确切步骤。Zombies仪器仅在模拟器上可用,因为Mac上的RAM比iOS设备上的要多。

您可以查看有关崩溃的教程,并了解如何操作。请密切注意这一部分:

当发现程序正在执行某项操作时,会发生异常 不该这么做的。你现在看到的是战争的后果 此异常:应用程序出错,异常已被删除 抛出,Xcode将显示结果。理想情况下,你会希望看到 异常被抛出的确切位置。幸运的是,你能看出来 Xcode使用异常在此时暂停程序 断点。断点是一种暂停程序的调试工具 在特定的时刻


乔治-谢谢你的提示-它工作得很好,至少现在我知道错误发生在核心数据的深处。该对象在newFetchedRowsForFetchPlan_MT中被malloc'ed,然后由[NSSQLCore objectsForFetchRequest]和[NSManagedObjectContext executeFetchRequest:error]自动删除两次。是时候让我继续挖掘了——谢谢阿金拉德的帮助。将崩溃代码封装在try-catch块中并打印出异常也可能有帮助。它还可以防止它崩溃,这总是一件好事。每当你引用一个解除分配的对象时,这种情况就会发生。由于Objective-C的工作方式,调试器不会在发生冲突的位置停止。您必须启用僵尸并在Objective-C异常中设置断点才能获得更多信息。