如何在 Xcode 4.6.x 中快速检查任意变量的值?

Posted

技术标签:

【中文标题】如何在 Xcode 4.6.x 中快速检查任意变量的值?【英文标题】:How do I quickly inspect the value of an arbitrary variable in Xcode 4.6.x? 【发布时间】:2013-04-13 13:43:14 【问题描述】:

it is slow to use the po command in Xcode 4.6.x 似乎得到了广泛的认可。有哪些选项可以检查编译时未指定的任意变量的值(这排除了 NSLog() 的使用)不超过 15 秒?

【问题讨论】:

通过标记断点,并将鼠标指针移动到该变量 @AnoopVaidya 没有骰子 - 见here 弹出窗口是怎么来的?右键单击? 不只是将鼠标悬停在变量上并单击箭头。你用的是 4.6 吗? 是的......它应该工作。检查不同系统上的其他一些 XCode。符合要求,然后重新安装 XCode。 【参考方案1】:

只需在要了解变量值的位置设置断点即可。一旦程序暂停,所有变量值的摘要将出现在屏幕左下角的Varibles view 上。这是截图:

【讨论】:

你试过用 Xcode 4.6 做这个吗?右键单击该窗格中的一个变量最多有 30 秒的延迟,更不用说对象、ivars 等了。 嗯,我使用的是 4.6.1,右键单击时完全没有延迟。为什么要右键单击?您无需单击即可获得值。 如果是字典呢?还是您要检查的 ivar? 我有一个包含 3 个键/值对的小字典,仍然没有任何滞后或延迟。【参考方案2】:

您可以使用 lldb 命令:

p (int) myInt
po myObject
po myObject.memberObject
p (float) myObject.floatMember

请注意,您也可以在最新版本的 Xcode 中使用 p 代替 po。如果您在 llb 中运行 help -a,它将为您提供命令别名,下面是您可以使用的命令的 sn-p。

> (lldb) help -a  
p         -- ('expression --')  Evaluate a C/ObjC/C++ expression in the current
         program context, using user defined variables and variables
         currently in scope.  

po        -- ('expression -o  --')  Evaluate a C/ObjC/C++ expression in the
         current program context, using user defined variables and
         variables currently in scope  

print     -- ('expression --')  Evaluate a C/ObjC/C++ expression in the current
         program context, using user defined variables and variables
         currently in scope.

【讨论】:

Xcode 4.6 的问题是对于许多用户来说p/po 命令非常慢***.com/questions/14760206/…【参考方案3】:

原来答案很简单:下载 Xcode 4.6.2,LLDB 调试速度显着提高。注意一些关于here的讨论

【讨论】:

以上是关于如何在 Xcode 4.6.x 中快速检查任意变量的值?的主要内容,如果未能解决你的问题,请参考以下文章

XCode Utilities 区域中缺少属性检查器

让 Xcode 5 变量检查器显示自定义摘要和/或合成子项

如何使用 Xcode 5 可视化调试器快速查看自定义对象?

无法使用 Xcode 7.3.1 在我的 Swift 2 项目中检查带有“po”的变量 - 加载辅助函数时出错

如何检查元素是否在数组中

在 Xcode 6 中创建新的资产目录/图像集