在Xcode调试中查看变量或检查对象的提示

时间:2011-09-10 14:40:08

标签: ios xcode debugging

我从视觉工作室来到Xcode,我在断点检查或检查变量时遇到了一些麻烦。

我经常尝试通过鼠标悬停检查一个对象,然后展开它的属性,我只会看到属性的十六进制表示,而在摘要中只能看到一个更易读的形式。例如,Facebook sdk中的Facebook对象具有访问令牌属性,该属性是NSCFString。在调试器中,如何查看实际字符串值而不是该属性的十六进制值?

我是否应该在调试窗口中使用任何非常有用的gdb命令?

另外,为什么当我在调试器中鼠标悬停时,它总是说将iTunes添加为语音轨道?

2 个答案:

答案 0 :(得分:5)

正如你所指出的,有一些GDB命令可以启发你的生活。

打印对象:

  

po objectName

可能是最常用的命令,可以帮助您在Xcode中使用调试器。以下是Xcode调试器中GDB命令的综述:Debugging tips for Objective-C programming

就我个人而言,我依赖于使用NSLog的老式打印语句。使用GDB命令始终是痛苦

对我而言,当我打印对象并实际查看运行应用程序的每个时间上发生的事情时,事情会更快:

NSLog(@"%@", [info valueForKey:key]);

以下是使用NSLog参数的一些提示:CocoaDev: NSLog

Downpoint:一旦应用程序即将发布,我必须清除NSLog。


您的第二个相当奇怪的iTunes问题:您是否在Mac上启用了辅助功能模式? (只是一个猜测,我从来没有遇到过这样的事情)

答案 1 :(得分:0)

您的iTunes问题:也许您不小心从数据提示中获取了一些内容。

我在OSX 5.1.1中无法使用数据提示时出现问题:hover无法显示,并且没有眼睛和信息按钮。相反,点击一个变量会下拉一个以Add to iTunes ...结尾的菜单,这就是我猜你在某种程度上看到的。

对不起,我不能更清楚,但我无法弄清楚这个菜单如何与不起作用的数据提示相关。我已经发布了一个关于如何修复它的问题(xcode 5.1.1数据提示在调试中失败),如果我得到适用于你的问题的答案,我将与你分享。