【问题标题】:How do I know which line of code has caused my iOS app to crash in Xcode 9我如何知道哪一行代码导致我的 iOS 应用在 Xcode 9 中崩溃
【发布时间】:2018-03-06 15:08:36
【问题描述】:
我正在 Xcode 9 (Swift 4) 中构建一个应用程序,它甚至在完全加载之前就崩溃了。我收到一个错误:Thread 1: Signal SIGABRT 和 libc++abi.dylib: terminating with uncaught exception of type NSException。如何使用断点和调试知道哪一行代码导致错误?任何帮助,将不胜感激。谢谢!
(这里也有截图)
【问题讨论】:
标签:
ios
swift
debugging
sigabrt
nsexception
【解决方案1】:
你需要的是一个异常断点。异常断点是一种特殊的断点,只要发生异常就会中断,而不是每次都在特定文件的特定行上。断点中断的行是引发异常的行。要设置异常断点,您需要打开断点导航器并按下左下角的+ 按钮
会弹出一个小菜单,从中选择Exception Breakpoint…
之后可能会弹出第三个菜单,但您只需单击它之外的任意位置即可将其关闭。之后,当您再次构建并运行您的应用程序时,只要在抛出它的行上抛出异常,它就会中断
【解决方案2】:
您必须向上滚动才能看到错误。如果您向上滚动所有“以 NSException 类型的未捕获异常终止”的内容,您将看到类似“由于等等等等而终止应用程序”之类的内容,然后在正下方的下一行中会显示“原因:等等等等”。这应该可以告诉您应用程序崩溃的原因。