【问题标题】:`NSManagedObject` objects content never been shown directly in Xcode debugger`NSManagedObject` 对象内容从未在 Xcode 调试器中直接显示
【发布时间】:2019-10-08 09:14:36
【问题描述】:

有什么方法可以使NSManagedObject 对象的内容可见,而无需使用po 或手动打印NSManagedObject 对象中每个属性的描述?!

【问题讨论】:

    标签: ios xcode debugging core-data xcode-debugger


    【解决方案1】:

    NSManagedObject 是一个不透明的类 - 正如你看到的,它唯一的 ivar 是 isa 指针。如果不知道它在后台是如何工作的,您就无法获取它所拥有的实际数据。您来自 Swift,但在 ObjC 方面也是如此……

    在 lldb 中这个问题的一般解决方案必须有一个用于 NSManagedObject 的 lldb 数据格式化程序。 lldb 为其他突出的不透明类提供此功能。例如,即使在这些类中除了 isa 之外没有明确的 ivars,您也可以看到 ObjC NSArray 和 NSDictionary 的元素。许多 swift 标准库类(如数组和字典)也是如此 - 尽管在 swift 类的情况下有一些 ivars,但它们并不是很有指导意义。

    lldb 目前没有 NSManagedObject 的数据格式化程序。 Apple 以外的任何人都很难编写一个,因为这将取决于类的实现细节(从发布到发布)。如果这样的数据格式化程序对您有用,请在http://bugreporter.apple.com 提交增强请求。

    【讨论】:

    • 谢谢,尽快试试看!
    • 上帝保佑苹果。他们甚至锁定了我们自己编写的代码。
    • 这个答案可能在一定程度上有助于调试:stackoverflow.com/a/6279804/1602584
    猜你喜欢
    • 1970-01-01
    • 2017-12-31
    • 2011-04-12
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    相关资源
    最近更新 更多