way*_*yne 5 primitive core-data accessor
我对Core Data是否以setPrimitiveAttributeName:形式生成NSManagedObject子类的原始访问器感到困惑,与形式setPrimitiveValue:forKey:相比,它似乎始终如一.
我混淆的原因是我使用了建模工具(XCode 4)为我的两个实体生成NSManagedSubclasses,据我所知,它们共享相同的元数据设置,但是一个子类识别setPrimitiveAttributeName形式,而另一个没有(它给我一个"找不到方法"编译器警告).
那么,期望是什么?如果我打开一个新项目,创建一个具有一个属性的实体,并使用建模工具生成必要的NSManagedObject子类代码,我是否应该期望它自动生成更有效的原始访问器形式?
我也遇到过类似的问题。虽然运行时生成基元访问器,但 Xcode 4 不会生成基元的声明属性,您必须根据文档在子类中自行执行此操作。
我亲自为每个实体创建一个类别,并始终将我的自定义代码放在那里,这样我就可以随时重新生成 MO,而不必复制和粘贴。
您可以在类别中执行此操作,界面如下:
@property (nonatomic, retain) NSDate * primitiveLastUsed;
Run Code Online (Sandbox Code Playgroud)
实现是这样的:
@dynamic primitiveLastUsed;
Run Code Online (Sandbox Code Playgroud)
非常流畅,使得从 Xcode 重新生成 MO 变得毫不费力。