Xcode断点[NSExceptionRaise] vs - [NSExceptionRaise]

时间:2009-11-25 17:45:40

标签: cocoa cocoa-touch xcode breakpoints

Xcode的:运行>显示与GT;断点

我已经添加了必须的 [NSExceptionRaise] objc_exception_throw 但是当我关闭Breakpoints窗口然后返回Xcode时会添加第三个断点:的 -[NSExceptionRaise] 即可。这是否意味着 [NSExceptionRaise] 是错误的我应该将其删除?或者它们都有用吗?如果是这样,它们在功能上有何不同?

alt text

3 个答案:

答案 0 :(得分:3)

正确的断点是:

-[NSException raise]

您正在指示调试器中断NSException类的-raise方法。 “[NSExceptionRaise]”是(意思是没有不尊重)废话。 : - )

据我所知,你不需要两者。 objc_exception_throw是“新”方式,而 - [NSException raise]是“旧”方式。我相信如果你在Leopard上或以后,只会调用objc_exception_throw。 10.4或之前将调用 - [NSException raise]。

答案 1 :(得分:0)

新添加的断点是-[NSException raise],与[NSExceptionRaise]不同,后者是对象方法(NSException是类,raise是消息)。我不知道后者是什么,我怀疑XCode正试图对你输入的内容以及它认为你的意思充满信心。

答案 2 :(得分:0)

您必须在方法前加上加号或减号,因为调试器使用标题来定位和定义符号。不同的方法可以具有相同的名称,但是以“+”开头的方法是类方法,而以“ - ”开头的方法是实例方法。没有加号或减号,调试器不知道你想要什么方法。