如果类中的实例variables的值发生了变化,我该如何触发断点?

说我有一个variables, self.position ,我怎么让Xcode破坏,只要它改变了它的值(一些方法可以改变它)。

有条件的打破:

  1. Cmd +选项点击断点
  2. 像这样添加一个rest条件:

在这里输入图像说明

为了打破每一次的价值已经改变:

  1. 实现简单的setter(和getter为了干净的代码)。
  2. 添加断点到setter。

如果你想看看谁调用了setter,只要看一下堆栈跟踪中的下一行(在我的例子中是viewDidLoad):

在这里输入图像说明

更新:

添加一个观察点

  1. 打破任何地方, (lldb)提示显示在控制台
  2. inputwatchpoint set variable _position (用你想观看的iVarreplace_position)
  3. 记下为新创build的观察点分配的观察点编号。
  4. 修改条件中断的观察点: watchpoint modify -c "_position < 0.5" 1其中引用中的expression式是条件,最后的数字是#3中记下的观察点编号。
  5. 继续运行。 只要值符合条件,就会中断,您将能够检查堆栈帧以了解来电的来源。

那么简单的方法就是在监视窗口中右键单击variables并select监视variables选项。 Xcode会在数值改变的时候提醒你。

或者你可以看看键值观测 。

设置一个符号断点。 转到断点导航器,单击+,单击“添加符号断点”。 在第一个字段中input – [YourSubclassNameHere setPosition:],添加你想要的其他设置,然后在对话框外单击。

你可以覆盖position的setter当它设置variables时有一个断点。