我怎么知道哪一行代码导致我的iOS应用程序在Xcode 9中崩溃

时间:2017-09-25 15:18:52

标签: ios swift debugging sigabrt nsexception

我正在使用Xcode 9(Swift 4)构建一个应用程序,它甚至在完全加载之前就崩溃了。我收到了错误:Thread 1: Signal SIGABRTlibc++abi.dylib: terminating with uncaught exception of type NSException。我如何知道使用断点和调试导致错误的代码行?任何帮助,将不胜感激。谢谢! (这里也是截图)enter image description here

2 个答案:

答案 0 :(得分:16)

这里需要的是异常断点。异常断点是一种特殊类型的断点,每当发生异常时都会断开,而不是每次都在特定文件中的特定行上断开。断点断开的行是抛出异常的行。要设置异常断点,您需要打开断点导航器并按左下角的+按钮

Xcode breakpoint navigator

会弹出一个小菜单,然后选择Exception Breakpoint…

Exception Breakpoint option

之后可能会弹出第三个菜单,但您只需点击它之外的任何位置即可将其关闭。之后,当您再次构建并运行应用程序时,只要在引发它的行上抛出异常,它就会中断

答案 1 :(得分:4)

您必须向上滚动才能看到错误。如果您向上滚动所有“以NSException类型的未捕获异常终止”的内容,您将看到类似“由于等等等等而终止应用程序”的信息,然后在下面的下一行中将显示“原因:等等等等”。那应该告诉你为什么应用崩溃了。