为什么不能自我'认识?

时间:2015-09-24 06:46:04

标签: ios recursion lldb

我正在开发iOS应用程序。

我想在一个在lldb上有UITableView的Page上使用recursiveDescription。 我移到页面上方,然后我通过暂停按钮停止应用程序。我收到了以下错误。

(lldb) po [self.workview recursiveDescription]
error: use of undeclared identifier 'self'
error: 1 errors parsing expression
(lldb) po [self.view recursiveDescription]
error: use of undeclared identifier 'self'
error: 1 errors parsing expression

self.workview是UITableView的一个实例。 为什么不能自我'认?

2 个答案:

答案 0 :(得分:5)

  

然后我通过暂停按钮停止应用程序......为什么不能'自我'识别?

如果您通过单击Xco​​de中的暂停按钮来停止应用程序,则无法控制应用程序停止时正在执行的代码。执行可以在任何地方停止,并且如果在你停止的任何地方都定义了self,那么很有可能它不会被定义为你想要它的对象。

不要使用暂停按钮,而是在要调试的类的源代码中设置断点。

答案 1 :(得分:3)

除了Caleb的答案之外,您还可以在断点处获取任何对象的内存地址,并在将app与以下内容发送后向该对象发送消息:

po self

它的输出将是这样的:

<MYViewController: 0x7ffa63871800>

然后使用暂停按钮暂停应用,并在控制台上输入:

po [((MYViewController*)0x7ffa63871800).workview recursiveDescription]