Core Data中的"原始"访问器是什么?

epo*_*gee 17 core-data objective-c mogenerator

核心数据编程指南(我的重点):

默认情况下,Core Data 为托管对象类的建模属性(属性和关系)动态创建有效的公共原始 get和set访问器方法.

虽然我一直在使用核心数据和mogenerator愉快,因为我开始对Objective-C的,我从来没有一起来看看这是什么意思,直到提交的应用得到了拒绝因涉嫌使用私有API的.关于生成setPrimitiveTypeValue:方法的长篇故事,但不是我的问题.

在阅读指南时,我偶然发现了实体属性的公共和原始访问器的概念.另一个引用,但进一步说:

例如,给定与属性的实体firstName,核心数据自动生成firstName,setFirstName:,primitiveFirstName,和setPrimitiveFirstName:.

什么是原始访问者?是这样你可以直接分配BOOL值,而不是将它包装在NSNumber中吗?如果是这样,为什么会mogenerator已通过生成各种的麻烦了<Attribute>Value,set<Attribute>Value:,primitive<Attribute>Value,setPrimitive<Attribute>Value:存取?

我很困惑,谁能帮助我?


相关问题:

jrt*_*ton 10

据我了解,原始方法执行实际获取和设置,但不发出任何KVC或KVO通知('willAccessValueForKey'等).public方法调用原始方法,但在KVO调用中包装调用.因此,从对象外部,您通常会调用公共方法,但如果您因内部原因需要使用对象的属性(例如,验证或派生其他属性),您可以使用原始方法来避免触发所有通知.

我欢迎对答案进行任何更正或澄清,因为这是我感兴趣但不完全精通的主题.