2012-01-03 193 views
0

我想保存JSON响应本地核心数据为我的应用程序。我下面以下实现此: https://stackoverflow.com/a/2363996/127036JSON核心数据

这里是我的代码:

NSString *objectName = @"Post"; 
NSManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:objectName inManagedObjectContext:moc]; 
[managedObject setValuesForKeysWithDictionary:structureDictionary]; 

编译器返回以下错误:

-[__NSCFDictionary entity]: unrecognized selector sent to instance 0x6dc6fa0 

虽然试图执行:

setValuesForKeysWithDictionary 

请引导我在正确的方向f ix这个问题。

+0

你的'structureDictionary'里有什么? – iHunter 2012-01-03 20:24:23

回答

0

我没有看到setValuesForKeysWithDictionary在开发中心为NSManagedObject

http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObject_Class/Reference/NSManagedObject.html

您可能需要通过循环和做他们一个在用的setValue时间:forKey:

+0

setValuesForKeysWithDictionary是NSKeyValueCoding协议的一部分:http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueCoding_Protocol/Reference/Reference.html – 2012-01-03 19:35:38

0

这个职位现在已经很老了,我确信Vibhor Goyal已经开始了。但是,在任何情况下,运行到同样的问题,之所以他得到

-[__NSCFDictionary entity]: unrecognized selector sent to instance 

是因为在他的岗位的模式,我相信他有子实体,大概就像“意见”,这可能是去往 - 许多关系到“评论”模型。

然后,在他的结构Dictionary中,他可能有对应于他的Post模型的常用键值字段,对于“注释”键,他可能有一个NSSet的NSDictionaries值。

因此,他得到那个实体选择器错误的原因是因为在核心数据期望“注释”是一个填充了“注释”实例的集合,它们应该是NSManagedObject的实例,但实际上它是获取NSDictionary的实例。所以当它从每个“注释”中要求“实体”时,它会抛出无法识别的选择器错误。

希望这可以帮助未来的人。