给定一个绑定到IB中的moc的NSArrayController
“objController”,不应该以下工作吗?鉴于它似乎不起作用,我如何从NSArrayController
检索实体的名称?
for (NSManagedObject *thisObj in [objController arrangedObjects])
{
NSEntityDescription *description = [thisObj entity];
NSString *entityName = [description name];
// do something with entityName...
NSString *entityAttributeValue = [thisObj valueForKey:@"attributeKey"];
// do something with entityAttributeValue...
}
“objController”是IBOutlet-ed并设置为“实体名称”模式,实体名称设置为模型中定义的实体。这个实体确实有子实体(因此我想访问它的描述名称,因为NSArrayController
可以存储许多不同的子实体类型),但子实体的存在似乎没有什么区别反正。
...在调试器中,看起来“description”是一个有效的NSEntityDescription
对象,但“entityName”被设置为_PFEncodedString
对象,没有内容。但是,“entityAttributeValue”很好,填充了Core Data中存储的正确值。
我认为,解决这个问题的一种方法是自定义所有CD实体,然后使用 - isKindOfClass
来获取我需要的信息。
有什么想法吗?
答案 0 :(得分:1)
_PFEncodedString
是NSString
的(私人)具体子类,因此可以用作任何其他NSString
。