为什么我需要在核心数据项目中使用原始访问器方法?

Gre*_*reg 3 iphone core-data

为什么我需要在核心数据项目中使用原始访问器方法?

我正在阅读关于核心数据的内容,请注意以下内容:

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

例如,给定具有属性firstName的实体,Core Data会自动生成firstName,setFirstName:,primitiveFirstName和setPrimitiveFirstName:.

我还不确定原始访问器方法是什么?他们是如何工作的?何时以及为什么我需要在正常的访问器方法上使用它们?

谢谢

ugh*_*fhw 5

在普通的类中,您通常不会使用原始访问器,但Core Data会经常使用它们.最常见的场景:您编写自定义访问器(执行维护,创建默认对象,处理持久属性的瞬态包装等),但希望使用Core Data的优化存储.如果优化的访问器是普通访问器,那么您的自定义访问器将阻止它可用,但您只需使用原始访问器.

此外,您从Xcode获得的默认访问器包括从多对多关系中添加或删除对象的方法.如果这些方法使用普通访问器,则普通访问器将触发整个集的更改通知.相反,他们使用原始访问器并为他们正在更改的部分创建自己的更改通知.

最重要的是原始访问器是获得优化存储的唯一方法.没有它们,您将不得不使用Apple建议的实例变量.