Core data 现有和未键入错误密钥的NSUnknownKeyException
我得到以下输出:Core data 现有和未键入错误密钥的NSUnknownKeyException,core-data,xcode4,ios6,key-value-coding,Core Data,Xcode4,Ios6,Key Value Coding,我得到以下输出: *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSManagedObject 0x21016610> setValue:forUndefinedKey:]: the entity MyEntity is not key value coding-compliant for the key "aBooleanKey".' 对我来说,这看起来像是输入错
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<NSManagedObject 0x21016610> setValue:forUndefinedKey:]: the entity MyEntity is
not key value coding-compliant for the key "aBooleanKey".'
对我来说,这看起来像是输入错误之类的,因为所有其他实体属性都不会导致任何问题。但我检查了12次,没有发现任何打字错误。一切看起来都很好。一周前,一切都很顺利——我在这里没有做任何改变
还有一些其他地方,我使用managedObject
进行操作,同样,除了这个属性之外,所有其他属性都可以正常工作。我尝试在核心数据存储中删除它并重新键入,但没有解决问题
此错误还有其他原因吗?问题非常奇怪(有时有效,有时无效),因此我建议更改属性的名称(例如
booleanStatus
),并验证问题是否仍然存在
由于您已更改了模型,因此需要删除应用程序并重新创建它。或者,您可以对核心数据执行自动迁移。随你的便
希望能有帮助 你能谈谈你的模型吗?当然,你想知道什么?我可以说“aBooleanKey”是模型中的一个布尔值。还有什么是重要的?如果您更改该属性的名称(例如,
booleanStatus
),问题是否仍然存在?您需要删除应用程序并重新创建它,因为您已更改了模型。因为我不是有此想法的人,所以我更喜欢以前的建议。:)谢谢你上瘾了。尽管我仍然不明白问题出在哪里——删除旧属性并添加另一个名称的新属性加上轻量级迁移解决了我的问题。
self.name = [managedObject valueForKey:@"name"];
self.language = [managedObject valueForKey:@"language"];
self.ownerID = [managedObject valueForKey:@"ownerID"];
// the following line is the scope of the problem:
self.aBooleanKey = [[managedObject valueForKey:@"aBooleanKey"] boolValue];