【问题标题】:How to access 'self' in Console in Xcode 7.3如何在 Xcode 7.3 的控制台中访问“自我”
【发布时间】:2016-04-15 12:03:47
【问题描述】:

调试时我无法在控制台中获取字典/数组值。

它总是在 po 字典/数组时显示消息

错误:警告:在声称捕获 Objective-C 对象指针的上下文中停止,但“self”不可用;假装我们 是在一个通用的上下文中

Check the screenshot here

【问题讨论】:

  • 你在使用断点吗
  • @TysonVignesh 是的,在这两种方式中,使用断点和在控制台中使用 PO 命令。
  • @Merry 我不认为有任何问题,试试 [self yourArray/Dictionary]
  • @Merry 也试试这个,去你项目的构建设置--->构建选项--->调试--->Dwarf and Release--->Dwarf with dysm,检查这个如果不是这样
  • @AkashKR 谢谢。它正在工作,但我对这件事有点困惑,为什么它不直接po dictionary

标签: ios objective-c iphone xcode


【解决方案1】:

您可以在控制台窗口中使用po [self variablename] 检查属性和变量的值。这样您就可以轻松访问变量。

您还可以检查其他项目是否有问题出在 xcode 或您的项目配置中。

您还可以在调试区域展开折叠的值。如果它正在扩展,那么您只需使用po variablename 即可访问值,否则您需要使用po [self variablename]

【讨论】:

    【解决方案2】:

    我遇到了同样的问题并找到了这个解决方案。将此 clang 模块调试 DEBUG 更改为 NO 并将 RELEASE 更改为 YES 将解决您的问题。

    在下面查看此链接。

    Accessing Self in LLDB

    【讨论】:

      【解决方案3】:

      请参考以下屏幕截图,其中我打印了数组的值

      【讨论】:

      • 这件事在我的代码中不起作用,这就是问题所在。
      • 您能否提供这样的屏幕截图,您在哪里放置断点以及如何打印值,这可以为我们提供清晰的上下文
      • 我已经在问题中附上了屏幕截图。检查此link 了解更多详情。即使我无法在 Debug 区域中扩展 Self。
      【解决方案4】:

      这是一个调试器错误(是的,想象一下!)

      只需重新启动 XCode,它对你来说应该不再是问题了 :)

      编辑:

      心灵!我在想别的东西。

      您正在创建一个保留周期,到目前为止,调试器以这种方式对这个特定的保留周期进行分类(正如我所说,一个错误)。

      要解决此问题,请创建 self 的弱副本:

      __weak __typeof(self)weakSelf = self;
      

      那么对于给你带来麻烦的自己:

      self.object 更改为weakSelf.object

      来源:"self" not available in debugger on iOS 5.1

      【讨论】:

      • 我已经尝试过重启xcode。而且我在stackoverflow的一些问题中也看到了xCode 7.3之前的这个错误。
      猜你喜欢
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 2013-01-21
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 2013-10-19
      相关资源
      最近更新 更多