【问题标题】:why couldn't 'self' recognize?为什么“自我”不能识别?
【发布时间】:2015-09-24 06:46:04
【问题描述】:

我正在开发 iOS 应用程序。

我想在一个在 lldb 上有 UITableView 的页面上使用 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 的实例。 为什么'self'不能识别?

【问题讨论】:

  • 当你点击暂停时谁知道上下文是什么。在要进入调试器的行设置断点
  • 我明白了。我会试试的。

标签: ios recursion lldb


【解决方案1】:

然后我通过暂停按钮停止应用程序...为什么“自我”无法识别?

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

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

【讨论】:

  • 感谢您的回答。我能够做到我所期望的。
【解决方案2】:

除了 Caleb 的回答之外,您还可以在断点上获取任何对象的内存地址,并在暂停应用程序后向该对象发送消息:

po self

它的输出会是这样的:

<MYViewController: 0x7ffa63871800>

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

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

【讨论】:

  • 我明白了。lldb 调试很有趣。Tnank 你。
猜你喜欢
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2011-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多