你如何观看或评估xcode中的表达式,如visual studio立即窗口?

时间:2011-04-14 11:38:19

标签: objective-c xcode debugging

在MS visual studio中,我们右键单击添加手表。

如何在Xcode中执行此操作?

6 个答案:

答案 0 :(得分:23)

使用调试区域中的po命令

在相关的代码区域设置断点,然后当程序在断点处停止时,在调试区域的控制台中输入命令。 相关命令为 po 打印对象),后跟您要评估的表达式。

如果在XCode中看不到调试窗口,您可以通过顶部菜单显示它:

'View' -> 'Debug Area' -> 'Activate Console' XCode v8.x

实施例

要评估var1/var2这样的表达式,其中var1var2都是双打,请在控制台中输入以下内容:

po var1/var2

控制台将返回如下内容:

(double) $2 = 3.085 [no Objective-C description available]

显示对象属性

您还可以返回该断点处代码中当前使用的对象的特定属性:

po [bankInfo city]

它会返回类似的内容:

(id) $4 = 0x000069e8 Testville

请注意,虽然控制台似乎不喜欢点符号,但在适用时更喜欢方括号。例如,这会为我返回错误:

po bankInfo.city

我希望这是你一直在寻找的东西。

答案 1 :(得分:11)

Gabe的答案几乎就在那里,但缺少一个关键细节:选择调试器输出。默认情况下,bottom选项设置为Target Output,因此po命令不会显示任何内容。

以下是我正在调试的教程中的三明治应用

eval expression screenshot in xcode

作为一名xcode新手,来自MS Visual Studio背景,我想要OP正在寻找的东西。在阅读Gabe的答案时,我选择了Debugger Output并得到了我想要的东西。

答案 2 :(得分:2)

我的前辈告诉使用NSLog(@variable)..........

答案 3 :(得分:1)

据我所知,您希望看到变量何时发生变化。为此,创建一个断点并右键单击它并选择Edit Breakpoint。将出现一个窗口:

enter image description here

确保选择正确的操作,例如Debugger CommandLog Message,然后选中选项Automatically continue after evaluating。所以你得到某种动作(例如伐木,声音等)并且不会在断点处停下来。

答案 4 :(得分:1)

如果您想知道变量何时发生变化,请使用“观察”:

  1. 在相关课程的某处设置断点;
  2. 在调试器中运行应用程序,让它在断点处停止;和
  3. 转到底部“调试”面板左侧的“变量”视图,右键单击相关属性,然后选择“观察”。
  4. 例如,在这里,我已在viewDidLoad的断点停留,并为total添加了“监视”:

    Watch

    (这是Swift,但Objective-C也是如此。)

    现在,如果我“继续”执行(enter image description here),只要此属性发生变化,Xcode就会暂停,我可以看到代码行total正在变化,堆栈跟踪到达点等等。

答案 5 :(得分:0)

在循环和函数的开头设置一些断点。一旦你点击编辑器窗口中的断点(一个类似箭头)按钮,就会启用“构建和调试工具”。然后,您可以通过单击调试器图标转到调试器。在调试器窗口右侧的变量将显示选择self->然后实例变量ur将设置监视点。右键单击并选择“监视变量”。将设置一个触发点,您将收到通知更改时变量的值。