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

时间:2010-06-02 12:34:06

标签: iphone xcode debugging nsmanagedobject

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

3 个答案:

答案 0 :(得分:21)

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

答案 1 :(得分:8)

在调试器控制台中输入

po [your_entity your_property]

我真的不知道另一种有用的方式,因为实体可能例如正如您已经注意到的那样,出现故障并且NSManagedObject结构也没有用处。

答案 2 :(得分:1)

进入调试器窗口,右键单击“添加表达式...”并输入代码中显示的表达式;您也可以在调试器中键入p <expression>以达到类似的效果。例如,在我的情况下:

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

如果你正在处理一些无差别的NSObjectNSManagedObject或类似的东西,那么这可能会有点痛苦,你可能想要转储表达式,如其他答案中所述在这里,但是如果对象确实有一个合适的接口(例如,变量的类型为NSObject但对象有一个更具体的类),那么在调试器中将其强制转换通常会很好。