我对Core Data是否以setPrimitiveAttributeName:形式为NSManagedObject子类生成原始访问器感到困惑,与形式setPrimitiveValue:forKey:相比,它似乎始终如一。
我混淆的原因是我使用了建模工具(XCode 4)为我的两个实体生成NSManagedSubclasses,据我所知,它共享相同的元数据设置,但是一个子类识别setPrimitiveAttributeName形式,而另一个没有(它给我一个“找不到方法”编译器警告)。
那么,期望是什么?如果我打开一个新项目,创建一个具有一个属性的实体,并使用建模工具生成必要的NSManagedObject子类代码,我是否应该期望它自动生成更有效的原始访问器形式?
答案 0 :(得分:2)
我遇到了类似的问题。虽然运行时generates the primitive accessors,Xcode 4不生成基元的声明属性,但您必须根据文档自己在子类中执行此操作。
我个人为每个实体创建一个类别,并始终将我的自定义代码放在那里,这样我就可以随时重新生成MO,而不必复制和粘贴。
您可以在一个类别中执行此操作,界面包含:
@property (nonatomic, retain) NSDate * primitiveLastUsed;
实施有这个:
@dynamic primitiveLastUsed;
非常光滑,让Xcode的再生MO无痛。