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"
网友评论