核心数据可转换属性

时间:2012-09-05 21:11:09

标签: iphone ios core-data nsdictionary nsmanagedobject

我正在尝试访问可转换核心数据对象的属性,如下所示:

MainObject *localObject = [self.myArray objectAtIndex:indexPath.row];
TransformableObject *actualObject = localObject.transformableObject;

这很好用。我NSLog actualObject并获得正确的键/值对:

actualObject:{

    property = "Foo";
    property2 = "Apple";
}

然而,当我尝试:

NSLog (@"property:%@",actualObject.property)我得到-[__NSCFDictionary property]: unrecognized selector sent to instance

我做错了什么?在我的核心数据类中,我有:

@interface MainObject : NSManagedObject

@property (nonatomic, retain) TransformableObjectClass *transformableObject;

编辑: 以下是我在Core Data中设置对象的方法

        MainObject *event = (MainObject *)[NSEntityDescription insertNewObjectForEntityForName:@"MainObject" inManagedObjectContext:[AppDelegateMy managedObjectContext]];
        [event setValuesForKeysWithDictionary:[myArrray objectAtIndex:i]];

1 个答案:

答案 0 :(得分:1)

-setValuesForKeysWithDictionary:和Core Data都不足以让您无需付出更多努力即可完成这项工作。现在,您只需将JSON响应中的字典分配给新托管对象的transformableObject属性。如果你试图保存你的上下文,我的猜测是它可能会失败。如果您希望这些词典变成实际的TransformableObjectClass个实例,则需要自己执行此操作。

如果您的应用中有很多此类内容,您可能需要查看RestKit或其他一个开源JSON到对象映射库,例如ClassMapper