我正在尝试访问可转换核心数据对象的属性,如下所示:
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]];
答案 0 :(得分:1)
-setValuesForKeysWithDictionary:
和Core Data都不足以让您无需付出更多努力即可完成这项工作。现在,您只需将JSON响应中的字典分配给新托管对象的transformableObject
属性。如果你试图保存你的上下文,我的猜测是它可能会失败。如果您希望这些词典变成实际的TransformableObjectClass
个实例,则需要自己执行此操作。
如果您的应用中有很多此类内容,您可能需要查看RestKit或其他一个开源JSON到对象映射库,例如ClassMapper。