在Xcode 9中,我如何知道哪一行代码导致了我的iOS应用程序崩溃?

7
我正在使用Xcode 9(Swift 4)构建一个应用程序,但是在完全加载之前就崩溃了。我收到了一个错误:Thread 1: Signal SIGABRTlibc++abi.dylib: terminating with uncaught exception of type NSException。如何使用断点和调试知道哪一行代码导致了错误?如果有帮助的话,请告诉我。谢谢! (这里也附上了截图)enter image description here
2个回答

23

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

Xcode breakpoint navigator

一个小菜单会弹出,从中选择异常断点…

Exception Breakpoint option

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


2
你为我打开了一个全新的世界。 - Austin Berenyi

4
你需要向上滚动来查看错误。如果你向上滚动超过所有的“terminating with uncaught exception of type NSException”的内容,你会看到类似于“Terminating app due to blah blah blah”的内容,然后在它下面的下一行就会说“reason: blah blah blah”。这应该可以告诉你应用程序崩溃的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接