【问题标题】:tips on watching variables or examining objects in Xcode debugging在 Xcode 调试中观察变量或检查对象的技巧
【发布时间】:2011-09-10 14:40:08
【问题描述】:

我从 Visual Studio 转到 Xcode,在检查断点处的变量时遇到了一些问题。

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

我应该在调试窗口中使用哪些非常有用的 gdb 命令?

另外,当我将鼠标悬停在调试器中的内容上时,为什么总是说添加到 iTunes 作为语音曲目?

【问题讨论】:

    标签: ios xcode debugging


    【解决方案1】:

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

    打印对象:

    po 对象名称

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

    就我个人而言,我有点依赖使用 NSLog 的老式打印语句。 一直使用 GDB 命令确实是一种痛苦

    对我来说,当我可以打印对象并实际查看发生了什么每次运行应用程序时,事情会变得更快:

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

    这里有一些使用带参数的 NSLog 的技巧:CocoaDev: NSLog

    缺点:一旦应用程序发布,我必须清除 NSLogs。


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

    【讨论】:

    • 在下降点上,我在各个地方遇到的一个提示是在开发时使用:#define MyLog if(0); else NSLog 并将 0 更改为 1 以进行发布。这可以防止编译 NSLog 以供发布。我现在一直用这个。省去了很多剥离 NSLogs 的麻烦。
    【解决方案2】:

    您的 iTunes 问题:您可能不小心从数据提示中获取了一些信息。

    我在 OSX 5.1.1 中无法使用数据提示时遇到问题:悬停不显示并且没有眼睛和信息按钮。相反,单击一个变量会下拉一个以 Add to iTunes... 结尾的菜单,我猜你会以某种方式看到它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2010-10-09
      • 2011-01-20
      • 1970-01-01
      • 2015-10-03
      • 1970-01-01
      相关资源
      最近更新 更多