如何在 XCode 调试器中调试 NSManagedObjects?

Posted

技术标签:

【中文标题】如何在 XCode 调试器中调试 NSManagedObjects?【英文标题】:How can I debug NSManagedObjects in XCode debugger? 【发布时间】:2010-06-02 12:34:06 【问题描述】:

在 XCode 调试器中如何获取实体(NSManaged 对象的子类)的值?我迷失在 NSObject 和 _cd_XXX 结构中。

【问题讨论】:

【参考方案1】:

如果您在变量窗格中选择实体,然后从上下文菜单中选择“将描述打印到控制台”,您将获得实体的文本转储。

【讨论】:

不完全是我要找的东西,但你得到了 6 票,它的工作原理与描述的一样。【参考方案2】:

在调试器控制台输入

po [your_entity your_property]

我真的不知道另一种有用的方法,因为实体可能例如是错误的,而且 NSManagedObject 结构也不是很有帮助,正如你已经注意到的那样。

【讨论】:

【参考方案3】:

进入调试器窗口,右键单击“添加表达式...”,然后键入将出现在代码中的表达式;您也可以在调试器中键入p <expression> 以达到类似的效果。以我为例:

managedObjectContext.registeredObjects.first?.value(forKey: "shifts") as? [Shift]

如果您要处理的是未区分的 NSObjectNSManagedObject 或类似的东西,那么这可能会有点痛苦,您可能希望按照此处其他答案中的描述转储表达式,但如果该对象确实具有适当的接口(例如,变量的类型为NSObject,但对象具有更具体的类),然后在调试器中进行转换通常会很好。

【讨论】:

以上是关于如何在 XCode 调试器中调试 NSManagedObjects?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中调试内部类

如何在 Xcode 5 中调试库?

如何在 Xcode 调试导航选项卡中启用网络调试

如何在 Xcode 调试器中查看 NSDictionary 变量的内容?

如何在 XCode 调试器中评估语句

SwiftUI项目如何在Xcode预览(Preview)中开启调试支持