我对Core Data是否为setPrimitiveAttributeName :,与setPrimitiveValue:forKey:形式的NSManagedObject子类生成原始访问器有点困惑,它似乎一致地执行。核心数据原始访问器
我的困惑之源是我使用建模工具(XCode 4)为我的两个实体生成NSManagedSubclasses,据我所知,它们共享相同的元数据设置,但是一个子类可以识别setPrimitiveAttributeName形式,而另一个不(它给了我一个“未找到方法”的编译器警告)。
那么,期待是什么?如果我打开一个新项目,创建一个具有一个属性的实体,并使用建模工具生成必要的NSManagedObject子类代码,我希望它能自动生成更高效的原始访问器形式吗?
下面是链接文档中最相关的一点:“核心数据为您自动生成访问器方法(和原始访问器方法)....但是您确实需要声明访问器方法或使用Objective-C属性来抑制编译器警告“。 – 2014-02-16 13:28:48
作为一个侧面说明,而不是创建自己的类别,我在这种情况下所做的是使用http://rentzsch.github.io/mogenerator/。 mogenerator根据模型自动生成一个基类。然后你在一个子类中扩展它。生成的基类比库存Xcode类更全面。只有一个例子是头文件自动包含所有基本访问器的声明(如本问题所讨论的)。但这也意味着,只要更改模型而不影响自定义代码,就可以重新生成这些基类。 – 2014-02-16 13:33:54
是的,这是一个很棒的工具,我的解决方案适用于那些不需要帮助工具而需要这种行为的人。感谢您链接此! – logancautrell 2014-03-12 17:13:24