0

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

有任何想法吗?

4

1 回答 1

1

_PFEncodedString是 的(私有)具体子类,NSString因此可以用作任何其他NSString.

于 2012-09-04T21:55:43.870 回答