斯威夫特 - 什么'类var'意味着什么

时间:2014-09-08 18:52:58

标签: swift

这是在swift中实现单例的解决方案之一。我很困惑为什么'var'前面加了一个'class'。据我所知,swift不支持类变量,为什么'class var'在这种情况下起作用?

class Singleton {
    class var sharedInstance : Singleton {
        struct Static {
            static let instance : Singleton = Singleton()
        }
        return Static.instance
    }
}

2 个答案:

答案 0 :(得分:16)

这不是类变量,它是类计算属性, 目前支持。

// Playground - noun: a place where people can play

class A {
    // Fine:
    class var computed: String {
        return "Woo"
    }
    // Not supported (yet):
    class var realVariable: String = "Woo"
}

答案 1 :(得分:0)

类变量就像静态变量一样,您可以通过调用MyClass.myVar来访问它,但是静态变量不能在子类中被覆盖,而类变量可以被覆盖。