如何进入NSManagedObject;访问个人属性

时间:2010-06-01 18:18:43

标签: iphone objective-c

NSManagedObject *entryObj = [self.fetchedResultsController
                         objectAtIndexPath:indexPath];

entryObj由四个String属性组成。

如果我NSLog entryObj,我得到了我想要的信息。我无法弄清楚如何单独访问每个属性。我读了一篇类似的帖子,解决方案是调用“实体”。我无法弄清楚如何使用“实体”来访问特定属性。

有什么想法吗?参考文献?教程?

提前致谢。

3 个答案:

答案 0 :(得分:5)

托管对象的属性符合KVC / KVO,因此您可以通过以下方式访问它们:

[entryObj valueForKey:@"name"]

或者,您可以生成具有真实属性的自定义Core Data类来访问这些值。有关详细信息,请参阅this documentation。 Xcode核心数据建模工具可以为您生成这些类。打开模型时,选择“文件 - >新文件”,您应该看到“托管对象类”项。选择此选项并选择要为其生成类的实体。

完成此操作后,核心数据实体的类名设置得恰当,您只需将NSManagedObject转换为新类的实例并访问其属性,即

MyObject *entryObj = (MyObject *) [self.fetchedResultsController
    objectAtIndexPath:indexPath];
NSLog(@"Property is %@", entryObj.whatever);

答案 1 :(得分:0)

如果使用设计器构建NSManaged对象,则可以导出模型类。从xcdatamodel do File / New File然后选择CocoaTouch Class / Managed Object Class。然后选择Next,然后勾选每个类。保留生成访问器并生成obj-c 2.0属性,并单击“完成”。

现在,您可以在项目中包含生成的文件,并使用点访问器语法。

或者使用[entryObject valueForKey:@“keyname”];但我更愿意尽可能坚持使用点访问器语法。

答案 2 :(得分:0)

为了生成具有从对象模型调用的属性的真实类,我强烈建议使用mogenerator:

http://github.com/rentzsch/mogenerator

这是主要项目,但易于下载的安装程序在这里:

http://rentzsch.github.com/mogenerator/

您还可以免费获得数字类型的原始值访问器。