我出于示例目的展示了该问题的代码,但实际上我的问题是:我应该如何追踪和理解 SIGABRT 错误?我读过这个问题:sigabrt 没有错误消息,但是我认为这与我的问题无关。
我下面将展示的示例显然不是 xib 问题,之前获得 SIGABRT 似乎更多与未处理的异常有关。我尝试过使用GDBbt
但这没有帮助。没有更全面的转储可以查看吗?我也用过NSZombie
,但我真的不明白如何使用它,所以如果这是您的答案,请提供一个指向文档的链接,说明我应该如何从中获取相关数据。
这是我的例子:我正在尝试使用核心数据。我的项目最初并未使用它进行设置,因此我必须手动添加它,方法是转到我的项目>构建阶段>将二进制与库链接>单击加号并添加 CoreData.framework
然后,我通过转到“文件”>“新建”>“数据模型”创建了数据模型。我创建了很多属性,仅此而已
之后,我向应用程序委托添加了正确的方法(我通过使用 Core Data 创建一个新项目,然后复制方法来完成此操作):
//code removed, as its not needed for the question/answer
之后,我只是尝试将一个值保存到托管对象(再次,使用新项目从默认实现复制代码):
//code removed, as its not needed for the question/answer
但是当我执行时我得到的只是addTime
方法是 SIGABRT 错误。
当对象收到未实现的消息时,SIGABRT 就会上升。您的应用程序有多少个警告?尝试浏览它们并找到那些警告您“某些对象可能不会响应某些选择器”的警告,如果您清除应用程序中的所有这些内容,您很可能会使其正常工作。
编辑:以下评论的回答非常有帮助:
好吧,这里是重炮 - 你尝试过使用断点吗?打开
项目资源管理器中的第六个选项卡,点击左下角
+ -> 添加异常断点 -> 完成。这将添加一个异常处理程序,该处理程序将在崩溃的方法调用时停止您的应用程序
该应用程序。
编辑:从 xCode 5.0 开始 > 您不再需要在创建断点时指定断点将捕获哪个异常。你只需要点击 + -> 添加异常断点就可以了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)