【问题标题】:lldb class has incompatible superclasslldb 类具有不兼容的超类
【发布时间】:2015-08-18 10:31:16
【问题描述】:

我突然无法打印出对象属性或调用 lldb 中的方法。唯一打印出来的是:

error: class '<ClassName>' has incompatible superclasses
note: inherits from superclass 'NSObject' here

即使是最基本的对象类型也是如此,例如:NSArray、NSDictionary 和 NSString。这是一个具体的例子:

(lldb) po functie.length
error: class 'NSString' has incompatible superclasses
note: inherits from superclass 'NSObject' here
error: 1 errors parsing expression

唯一可用的方法是 NSObject 中可用的方法,例如 -class。扩展上一个例子:

(lldb) po [functie class]
__NSCFString

如果有人知道问题出在哪里,我们将不胜感激您的意见。谢谢。

【问题讨论】:

  • 你的构建配置是Debug还是Release?因为我正在发布,所以我遇到了这样的奇怪错误。
  • 正在调试。我确保检查。
  • 你清理和重建了吗?你在其他项目中是否有这个问题?
  • 如果我是你,我会收集一个表达式日志并在 lldb 上提交一个错误。要收集表达式日志类型 log,请在执行 po 之前在 lldb 提示符处启用 lldb expr,然后将输出附加到错误报告中。
  • 我只是做了表达式日志,很长,所以我显然不会在这里发布。但是,我确实想避免提交错误报告,直到我更确定问题出在 lldb 而不是我所做的事情上。如果我确实提交了错误报告以及报告的结果(如果有的话),我会确保在这里发布。

标签: ios objective-c xcode lldb


【解决方案1】:

试试这个:

  1. 在左侧项目导航器中选择您的项目。

  2. 切换到Build Settings 标签。

  3. 搜索Debug Information Format

  4. Debug 的值设置为 DWARF

  5. 清理构建文件夹:保存Option + Command + Shift + K(即⌥ + ⌘ + ⇧ + K)。

  6. 重建您的项目:⌘ + R

祝你好运。

【讨论】:

  • 这对我有用。然后我用 dSYM 切换回 DWARF,又做了一次清洁,问题没有再出现。我怀疑今天早上在 XCode 9 beta 中打开项目时,我的项目文件有点混乱。被beta烧了好几次,但我显然还没有吸取教训。 :-)
  • 这对我也有用,我也使用了 Xcode 测试版。 Xcode 11 beta,所以这仍然是一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2015-11-17
  • 1970-01-01
  • 2023-02-06
相关资源
最近更新 更多