这是在swift中实现单例的解决方案之一。我很困惑为什么'var'前面加了一个'class'。据我所知,swift不支持类变量,为什么'class var'在这种情况下起作用?
class Singleton {
class var sharedInstance : Singleton {
struct Static {
static let instance : Singleton = Singleton()
}
return Static.instance
}
}
答案 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
来访问它,但是静态变量不能在子类中被覆盖,而类变量可以被覆盖。