我原本认为使用键值编码,我可以在运行时设置任何未定义的NSManagedObject属性而不会抛出异常,但这是一种将附加到模型的对象保留在数据模型之外的方式。
例如,我有一个Foo对象,它没有“bar”属性。我认为在运行时可以这样设置它:
我希望Managed Context对象能够保留这个值直到我之后查询它,但是对Managed Object Context进行保存却不能存储bar的值。
当我运行这段代码时,经常会出现著名的错误提示。
所以我的问题是:我哪里理解有误或做错了?
例如,我有一个Foo对象,它没有“bar”属性。我认为在运行时可以这样设置它:
Foo *foo = [NSEntityDescription insertNewObjectForEntityForName:@"Foo" inManagedObjectContext:ManagedObjectContext];
[foo setValue:@"foobar" forUndefinedKey:@"bar"];
我希望Managed Context对象能够保留这个值直到我之后查询它,但是对Managed Object Context进行保存却不能存储bar的值。
当我运行这段代码时,经常会出现著名的错误提示。
the entity Foo is not key value coding-compliant for the key "bar"
所以我的问题是:我哪里理解有误或做错了?