iOS 中的类属性

时间:2022-06-12 10:42:58

转自:iOS 知识小集

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

iOS 中的类属性

创建一个类属性很简单,主要有以下几个步骤:

1. 使用@property (class)来声明一个类属性;

2. 为类属性创建一个存储变量,通常为全局变量;

3. 实现类属性的getter与setter方法,如果是只读属性,只需要实现getter方法。

具体实例如图2所示。

iOS 中的类属性

需要注意的是编译器不会自动帮我们生成类属性的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