【问题标题】:SIGABRT between loadView and viewDidLoadloadView 和 viewDidLoad 之间的 SIGABRT
【发布时间】:2013-02-10 21:07:03
【问题描述】:

我是 iOS 开发新手,无法识别 SIGABRT 的来源。我已将其范围缩小到在 UIViewController 子类的初始化期间发生的事情,特别是在其 loadViewviewDidLoad 方法之间。

我在 UIViewController 子类中的每个方法重载中都调用了 NSLog 来缩小范围。但是,我无法从调试器中获得更多粒度;我无法进入[super loadView] 方法。除了 NSLogs 和单步调试器之外,还有什么技术可以调试 SIGABRT?有什么方法可以准确查看异常是从哪里引发的?

计划的具体细节

本程序使用 Core Data;我在this tutorial 之后创建了它。我相信 SIGABRT 是在我完成“Relationships In Action”部分之后开始发生的,而之前没有发生(我认为我在前面部分的末尾已经成功构建了)。具体来说,我可以成功添加一个人,但PersonDetailTableViewControllerloadViewviewDidLoad 之间抛出一个SIGABRT。

我尝试从 iPhone 模拟器中删除应用程序,并运行 Product > Clean;两者都没有任何效果。

【问题讨论】:

  • 尝试在所有异常上添加断点,stackoverflow.com/questions/10844725/…
  • 嗯,好吧,现在它只是在 [super loadView] 调用上停止。我在想我的故事板中可能有一些设置不正确,但我已经搜索过了,没有任何东西出现在我身上。
  • 您的故事板中的班级名称可能不正确?

标签: ios objective-c debugging uiviewcontroller sigabrt


【解决方案1】:

找到罪魁祸首。我之前通过 ctrl+从Table View CellText Field 拖动到我的UITableViewController 子类中错误地创建了一个 IBOutlet。我手动删除了此创建的代码,但连接检查器中仍保留一个连接。删除该连接解决了问题——不再需要 SIGABRT。

很遗憾,Xcode 发现了问题(见附图中的感叹号),但除了神秘的 SIGABRT 之外,没有以任何方式告诉我......

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2011-07-07
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 2014-04-08
    • 1970-01-01
    相关资源
    最近更新 更多