来自 Apple 的核心数据编程指南:
Core Data 为托管对象类动态生成高效的公共和原始 get 和 set 属性访问器方法和关系访问器方法。
...
原始访问器方法类似于“普通”或公共键值编码兼容访问器方法,只是 Core Data 使用它们作为访问数据的最基本数据方法,因此它们不发出键值访问或观察通知。换句话说,它们对于primitiveValueForKey: 和setPrimitiveValue:forKey: 什么公共访问器方法对于valueForKey: 和setValue:forKey:。
然后我希望原始访问器方法比公共访问器性能更好,因为它们不会触发 KVO 通知。有没有办法用 Time Profiler 有效地测试这个理论?(当然,这不可能像将两个调用放在它们自己的 for 循环中那样简单,这些循环会迭代无数次并比较结果......)
显然,原始访问器不会被托管对象子类之外的对象或函数调用,但是什么时候不应该在类中使用它们呢?