美文网首页Swift之家
Swift 静态属性

Swift 静态属性

作者: 小小土豆dev | 来源:发表于2019-04-30 22:54 被阅读0次

    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 静态属性

        本文链接:https://www.haomeiwen.com/subject/vorhgqtx.html