iOS 中的类属性

来源:互联网 发布:画画的软件 编辑:程序博客网 时间:2024/06/04 19:30

转自:iOS 知识小集

从Xcode 8开始,LLVM已经支持Objective-C显式声明类属性了,这是为了与Swift中的类属性互操作而引入的。在WWDC 2016 What’s New in LLVM 网页链接 里面有如图1这样一段话。

图1

创建一个类属性很简单,主要有以下几个步骤: 
1. 使用@property (class)来声明一个类属性; 
2. 为类属性创建一个存储变量,通常为全局变量; 
3. 实现类属性的getter与setter方法,如果是只读属性,只需要实现getter方法。

具体实例如图2所示。

图2

需要注意的是编译器不会自动帮我们生成类属性的getter和setter方法,所以2、3步是必须的。

实际上,在此之前,我们同样可以通过声明并实现obj的+obj与+setObj:方法,把obj当类属性并通过点语法来调用。而Xcode 8只是显式地支持去声明一个类属性。所以@property (class)与系统无关,在iOS 10之前的系统上运行也是没有问题的。

参考

  1. WWDC 2016 What’s New in LLVM
  2. Objective-C Class Properties O