9

您可以按照以下步骤在 XCode 中轻松设置观察点(顺便说一句,如果有更简单的方法,我想知道...):
- 运行程序
- 在使用变量的代码中设置断点
-到达断点时,右键单击变量并选择“Watch "nameOfTheVariable"'
- 继续执行。

唯一的问题是每次变量值更改时执行都会停止。我希望 XCode 继续执行而不停止,即仅在控制台输出中显示值更改。
此功能似乎在命令行模式下可用,虽然我最初想避免它,但我使用该模式发布了一个解决方案(见下文),因为它似乎是做我想做的唯一方法,即在显示变量的同时继续执行变化。

4

2 回答 2

18

看来,实现这一目标的唯一方法是使用 LLDB 命令行。因此,对于那些像我一样从未在这里使用过的人来说,这是一种逐步(实际上相当简单)的方式来使用它并在不停止执行的情况下观察变量:

  1. 在 Xcode 中设置一个断点(单击源代码行的左侧),在其中使用您要监视的变量(在范围内),然后运行您的代码直到它到达断点。
  2. 在控制台视图(显示在右下角的小窗口,您可以在其中显示控制台内容)中,您应该会看到(lldb)提示。您可以在此处输入以下命令:
    w s v stuff (或 watchpoint set variable stuff) 其中 stuff 是您要查看的变量的名称
    w c a (或 watchpoint command add) 进入脚本模式,您可以在其中每行输入一个命令,如下所示在 '>'
    p stuff (或 print stuff)之后显示新的变量值
    c (或 continue)以继续执行
    DONE 以完成这个小脚本(注意大写字符!)

而已 !您可以删除断点并继续执行。从那时起,每次更新变量“stuff”时都会在控制台中显示消息,而不会停止代码的执行(当然它可能会减慢一点,但这通常并不重要)。

于 2015-02-19T07:25:36.850 回答
0

观察点就像一个断点,当正在观察的变量的值被更新时,它会被击中。要设置它,请按照以下步骤操作:

1.设置断点,以便调试器中的变量视图显示您要查看的变量。2.右键单击变量并选择Watch“变量名”。3.每当变量的值发生变化时,这将停止执行。

观察点现在将开始显示在调试导航器中。为了将其删除,只需将其拖向编辑器即可。

PS:这只是一个更智能的实现 didset 的版本,用于变量以及其中的设置和断点。

于 2018-07-09T08:00:55.383 回答