Swift 静态属性

Swift 属性按照 定义方式 分为:

存储属性

计算属性

按照 调用方式 分为:

实例属性

类型属性(静态属性)

实例属性:属于一个特定类型的实例,每创建一个实例,实例都拥有属于自己的一套属性值,实例之间的属性相互独立。

类型属性:可以为类型本身定义属性,无论创建了多少个该类型的实例,这些属性都只有唯一一份。

类型属性用于定义某个类型所有实例共享的数据,比如所有实例都能用的一个常量(就像 C 语言中的静态常 量),或者所有实例都能访问的一个变量(就像 C 语言中的静态变量)。

存储型类型属性可以是变量或常量,计算型类型属性跟实例的计算型属性一样只能定义成变量属性。

类型属性语法

在 C 或 Objective-C 中,与某个类型关联的静态常量和静态变量,是作为全局(global)静态变量定义的。但是在 Swift 中,类型属性是作为类型定义的一部分写在类型最外层的花括号内,因此它的作用范围也就在类型支持的范围内。

使用关键字 static 来定义类型属性。在为类定义计算型类型属性时,可以改用关键字 class 来支持子类对父类的实现进行重写。

class SomeClass {

  static var storedTypeProperty ="Some value."

  static var computedTypeProperty:Int{

    return 27

  }

  class var overrideableComputedTypeProperty: Int {

    return 107

  }

}

class SubClass: SomeClass{

重写父类里的类型属性:

static var subStoredTypeProperty ="Some value."

  static var subComputedTypeProperty: Int {

    return 27

  }

  override class var overrideableComputedTypeProperty: Int {

    return 207

  }

}

调用方法:

print(SomeStructure.storedTypeProperty)// 打印 "Some value."

SomeStructure.storedTypeProperty = "Another value."

print(SomeStructure.storedTypeProperty)// 打印 "Another value.”

print(SomeEnumeration.computedTypeProperty)// 打印 "6"

print(SomeClass.computedTypeProperty)// 打印 "27"

你可能感兴趣的:(Swift 静态属性)