【问题标题】:Accessor implementation of properties属性的访问器实现
【发布时间】:2012-04-25 03:09:03
【问题描述】:

是否有一些关于编译器如何自动生成属性访问器的文档?

在编写自定义访问器(覆盖合成访问器)时,最好了解原始实现。 尤其是查看具有不同(弱/强/保留/复制等)属性的属性的访问器的不同实现。

【问题讨论】:

标签: objective-c properties automatic-ref-counting accessor


【解决方案1】:

是否有一些关于编译器如何自动生成属性访问器的文档?

编译器只是添加了一个 C 函数调用。查看 asm(例如 _objc_getProperty_objc_setProperty)。

在编写自定义访问器(覆盖合成访问器)时,最好了解原始实现。尤其是查看具有不同(弱/强/保留/复制等)属性的属性的访问器的不同实现。

这些实现作为 http://www.opensource.apple.com/source/objc4/ 托管的 o​​bjc 运行时的一部分公开提供。

【讨论】:

  • 你能告诉我在哪里可以找到它吗?
  • 在使用 ARC 时是否仍需要保留/释放内容?
  • @bijan 我不确定你到底在问我什么。如果有帮助:ARC 仍然使用引用计数 - 它只是很大程度上从您那里抽象出来的。如果您使用诸如objc_setProperty 之类的原语,那么是的,您需要传递正确的参数值,以便引用计数(以及行为)对于声明的属性是正确的。
  • 我的意思是,在实现我自己的访问器时,我还需要做 MRC 吗?例如,当为(保留)属性实现设置器时:我是否仍需要释放旧值并保留新值,还是 ARC 为我这样做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多