【发布时间】:2012-04-25 03:09:03
【问题描述】:
是否有一些关于编译器如何自动生成属性访问器的文档?
在编写自定义访问器(覆盖合成访问器)时,最好了解原始实现。 尤其是查看具有不同(弱/强/保留/复制等)属性的属性的访问器的不同实现。
【问题讨论】:
标签: objective-c properties automatic-ref-counting accessor
是否有一些关于编译器如何自动生成属性访问器的文档?
在编写自定义访问器(覆盖合成访问器)时,最好了解原始实现。 尤其是查看具有不同(弱/强/保留/复制等)属性的属性的访问器的不同实现。
【问题讨论】:
标签: objective-c properties automatic-ref-counting accessor
是否有一些关于编译器如何自动生成属性访问器的文档?
编译器只是添加了一个 C 函数调用。查看 asm(例如 _objc_getProperty 和 _objc_setProperty)。
在编写自定义访问器(覆盖合成访问器)时,最好了解原始实现。尤其是查看具有不同(弱/强/保留/复制等)属性的属性的访问器的不同实现。
这些实现作为 http://www.opensource.apple.com/source/objc4/ 托管的 objc 运行时的一部分公开提供。
【讨论】:
objc_setProperty 之类的原语,那么是的,您需要传递正确的参数值,以便引用计数(以及行为)对于声明的属性是正确的。