The KVC文档 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/AccessorConventions.html says
当您尝试将属性设置为 nil 时,会调用键值编码方法 setNilValueForKey: 方法。
到目前为止听起来不错
...使用 setValue:forKey: 设置新值。这维护了模型的封装,并确保由于设置该值而应发生的任何其他操作将实际发生。这被认为是比调用访问器方法或直接设置实例变量更好的做法。
为什么最好的做法是致电-setValue:forKey:
在 - 的里面-setNilValueForKey:
在基本类型或值类型属性上设置“默认”值时的方法?使用 KVC 方法是否有性能或技术优势-setValue:forKey:
与属性访问器相反(我假设当它说访问器方法时它也适用于访问器属性,因为它们只是该方法的语法糖)?通常,当苹果推荐“最佳实践”时,会有性能或可靠性方面的考虑。有谁知道有记录的原因why?
从你的报价来看:
这维护了模型的封装,并确保由于设置该值而应发生的任何其他操作将实际发生。
Calling setValue:forKey:
代替访问器或更改 ivar 可确保维持所有适当的副作用。当引用提到维护封装时,这意味着保留 KVC 方法而不是自定义访问器。呼唤setValue:forKey:
也意味着您可以让运行时来决定如何为您设置该属性。最后,“附加操作”可能指的是键值观察。它将确保调用正确的方法,而不是任何不应该调用的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)