我从视觉工作室来到Xcode,我在断点检查或检查变量时遇到了一些麻烦。
我经常尝试通过鼠标悬停检查一个对象,然后展开它的属性,我只会看到属性的十六进制表示,而在摘要中只能看到一个更易读的形式。例如,Facebook sdk中的Facebook对象具有访问令牌属性,该属性是NSCFString。在调试器中,如何查看实际字符串值而不是该属性的十六进制值?
我是否应该在调试窗口中使用任何非常有用的gdb命令?
另外,为什么当我在调试器中鼠标悬停时,它总是说将iTunes添加为语音轨道?
答案 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数据提示在调试中失败),如果我得到适用于你的问题的答案,我将与你分享。