2010-01-29 82 views
3

我的印象是,使用键值编码,我可以在运行时在NSManagedObject上设置任何未定义的属性,并且不会抛出异常,但它可以保持附着到该模型不在数据模型中。核心数据和运行时键值编码

例如,我有一个没有“bar”属性的Foo对象。我虽然在运行时,我可以把它像这样:

Foo *foo = [NSEntityDescription insertNewObjectForEntityForName:@"Foo" inManagedObjectContext:ManagedObjectContext]; 
[foo setValue:@"foobar" forUndefinedKey:@"bar"]; 

然后,我会想到ManagedObjectContext,直到后来我问,它保持这个值,但对管理对象上下文保存不会存储棒值。

著名的错误不断出现,当我运行这段代码:

the entity Foo is not key value coding-compliant for the key "bar" 

..所以我的问题是:什么是我没有得到或做错了什么?

回答