我已阅读“What's new in Xcode”,但我找不到此功能的官方解释。
哪里可以找到官方的解释?哪个文档?谢谢。
假设你的意思是它会自动生成一个 ivar 以及 getter 和 setter 方法,即使你省略了@synthesize
:这有不同的名称:默认属性合成、自动属性合成和属性自动合成。
没有太多文档。据我发现,有no关于它如何工作的官方文档,以及它存在的事实。
这实际上是一个 clang 功能,而不是 Xcode 功能。它曾短暂出现在 Xcode 4.0 DP 4 附带的 clang 版本中,但不久后由于错误而被删除。它再次出现在 Xcode 4.4 附带的 clang 版本中。我认为这是添加的。
你可以找到它在Objective-C 功能可用性指数 https://developer.apple.com/library/ios/#releasenotes/ObjectiveC/ObjCAvailabilityIndex/_index.html#//apple_ref/doc/uid/TP40012243.
文中也提到了Clang 语言扩展 http://clang.llvm.org/docs/LanguageExtensions.html#objc_default_synthesize_properties.
从实验来看:
如果你不明确@synthesize
一个属性并生成一个实例变量,它将自动生成一个与声明的属性具有相同类型(以及在 ARC 下,所有权限定)的 ivar。 ivar 名称将是一个下划线 (_
) 后跟声明的属性名称。
If you don't明确地@synthesize
a readonly
财产,还有你do包含一个显式的 getter 方法,然后 clang 将not自动为您生成一个 ivar。
If you don't明确地@synthesize
a readwrite
财产,还有你do包括both一个显式的 getter 和一个显式的 setter,然后 clang 会再次出现not自动为您生成一个 ivar。
但我不知道这些行为有任何官方文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)