我在这些行之后立即设置断点:
NSInteger index = [self.aCombobox indexOfSelectedItem];
NSString *nameSelected = [self.names objectAtIndex:index];
如果我然后将鼠标滑过nameSelected,它会显示一个值“nil。”如果我在调试器控制台中键入“po nameSelected”,它会显示字符串“似乎不指向有效对象”。
所以我添加了一个NSLog来打印nameSelected,它正确地打印了字符串。并且,一旦调试器低于NSLog线,如果我将鼠标滑过nameSelected,它将显示正确的值。
为什么调试器会以这种方式运行?这使得识别真正问题的位置变得更加困难。
答案 0 :(得分:2)
Me(以及数百万其他iOS开发人员)始终如一地执行此操作并且没有任何问题。虽然它似乎是一个愚蠢的查询,你是否在调试时修改了源代码(特别是添加了代码行)?如果是这样,当源不同步时,调试器仍然指向.o文件中的第X行。
答案 1 :(得分:1)
真正的答案是汤米对我这个老问题的评论。这是一个Xcode newby的错误。很抱歉离开这里很久了,
答案 2 :(得分:0)
实际上,我们的经验是,启用iOS的GDB就像任何东西一样。我们经常观察到这些类型的错误。 可能有一个解决方案,但大多数时候我们只是把它搞砸了并采用了NSLog Debugging。