为什么NSAssert在main中而不是在调用断言的代码中中断

时间:2012-06-01 05:10:20

标签: objective-c xcode nsassert

我设置了这个NSAssert

NSAssert(isStillLoadingArgument== [[self class] stillLoading],@"Hmm.... we think isStill Loading is false or true and yet stillLoading is true");;

以下是我问这个问题的截图: enter image description here

然后当断言失败时,代码会在此处中断:

enter image description here

这非常烦人,因为我希望在我设置断言的代码上看到断言中断。那么,我该怎么做。

Ben回答不幸的是没有解决问题: enter image description here

2 个答案:

答案 0 :(得分:8)

您需要为项目添加断点以查找所有异常。

1)点击断点导航器

Breakpoint

2)添加异常断点

Exception

3)确保将其设置为中断所有异常

All

现在XCode会破坏实际的断言而不是主断言。希望这有帮助!

答案 1 :(得分:2)

配置调试器以中断异常。

当断言失败时,它会引发异常。如果没有捕获异常,它会在展开堆栈后终止程序,将其保留在main()