我是iOS开发的新手,无法识别SIGABRT
的来源。我已将其缩小到UIViewController
子类初始化过程中发生的事情,特别是在loadView
和viewDidLoad
方法之间。
我在NSLog
子类中的每个方法重载中调用UIViewController
来缩小范围。但是,我无法从调试器中获得更多粒度;我无法进入[super loadView]
方法。是否有任何技术可以调试除NSLog之外的SIGABRT并逐步调试调试器?有没有办法确切地看到抛出异常的位置?
特定于计划的详细信息
该程序使用核心数据;我是在this tutorial之后创建的。我相信SIGABRT在我执行“关系在行动”部分后开始发生,并且之前没有发生过(我认为我在上一节结束时成功构建了)。具体来说,我可以成功添加一个Person,但PersonDetailTableViewController
会在loadView
和viewDidLoad
之间抛出一个SIGABRT。
我尝试从iPhone模拟器中删除该应用,并运行产品>清洁;没有任何影响。
答案 0 :(得分:0)
找到了罪魁祸首。我之前通过ctrl +从Table View Cell
的{{1}}拖动到我的Text Field
子类中错误地创建了一个IBOutlet。我手动删除了这个创建的代码,但是Connections Inspector中仍然存在连接。删除该连接解决了问题 - 不再有SIGABRT。
不幸的是,Xcode看到了问题(请参阅附图中的感叹号),但除了神秘的SIGABRT之外没有以任何方式告诉我它。