0

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

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;

编辑:这是我在核心数据中设置对象的方式

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

1 回答 1

1

Core Data 和 Core Data都-setValuesForKeysWithDictionary:没有足够的魔力来完成这项工作,而无需您付出更多的努力。现在,您只需将 JSON 响应中的字典分配给新托管对象的transformableObject属性。如果您尝试保存上下文,我的猜测是它可能会失败。如果您希望这些字典变成实际TransformableObjectClass实例,您需要自己做。

如果您的应用程序中有很多此类东西,您可能需要查看RestKit或其他开源 JSON 到对象映射库之一,如ClassMapper

于 2012-09-06T02:45:51.167 回答