【发布时间】:2015-10-07 19:47:00
【问题描述】:
我在调试器中收到了这个异常:
-[NSNull _setWithOffsetDelta:]:无法识别的选择器发送到 实例 0x7fff71d27210
这听起来很容易调试,所以我在所有 Objective-C 异常上设置了断点,并看到这个异常被抛出了这个消息:
[textLayout drawGlyphsForGlyphRange:glyphRange atPoint:textBounds.origin];
现在这就是我迷路的地方,这是回溯中的顶部堆栈帧:
还在任何地方搜索“setWithOffsetDelta”或“withOffsetDelta”都会返回 0 个结果,所以我不知道应该由哪个对象接收此消息。
我想如果我能确定哪个对象应该接收消息,我应该已经准备好了。
我尝试在 Xcode 调试器中使用变量视图来查找引用 NSNull 的对象,但什么都看不到
有没有人可以尝试解决这个问题?
【问题讨论】:
-
是否有特定于 Objective-C 的断点,或者您只是设置了所有异常断点?
-
Objective-C 特有的,我贴的那一行确实是抛出异常的那一行
-
这个方法 drawGlyphsForGlyphRange 的内容是什么?
-
我不知道,因为它是
NSLayoutManager中的一个方法,AppKit提供的一个对象。我不相信我可以在任何地方查看源代码? -
您查看 glyphRange 了吗?你确定它没有超出范围
标签: objective-c xcode debugging selector