从NSArrayController -arrangedObjects访问Core Data实体名称

时间:2012-09-04 15:24:43

标签: cocoa core-data nsmanagedobject nsarraycontroller nsentitydescription

给定一个绑定到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来获取我需要的信息。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

_PFEncodedStringNSString的(私人)具体子类,因此可以用作任何其他NSString