给定一个NSArrayController
绑定到 IB 中 moc 的“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
来获取我需要的信息。
有任何想法吗?