在XCode调试器中,如何获得实体(NSManaged Object的子类)的值?我迷失在NSObject和_cd_XXX结构中。
答案 0 :(得分:21)
如果在变量窗格中选择实体,然后从上下文菜单中选择“将描述打印到控制台”,则会获得实体的文本转储。
答案 1 :(得分:8)
在调试器控制台中输入
po [your_entity your_property]
我真的不知道另一种有用的方式,因为实体可能例如正如您已经注意到的那样,出现故障并且NSManagedObject结构也没有用处。
答案 2 :(得分:1)
进入调试器窗口,右键单击“添加表达式...”并输入代码中显示的表达式;您也可以在调试器中键入p <expression>
以达到类似的效果。例如,在我的情况下:
managedObjectContext.registeredObjects.first?.value(forKey: "shifts") as? [Shift]
如果你正在处理一些无差别的NSObject
或NSManagedObject
或类似的东西,那么这可能会有点痛苦,你可能想要转储表达式,如其他答案中所述在这里,但是如果对象确实有一个合适的接口(例如,变量的类型为NSObject
但对象有一个更具体的类),那么在调试器中将其强制转换通常会很好。