我试图了解当我们在Singleton自己的类声明中创建Singleton对象的第一个实例时在较低级别上会发生什么。
据我了解,关键字Transform > Pivot Column
允许标记的属性或方法在类的所有实例之间共享,我确定在这里我不能完全看到该角色或作用。
此外,当我们在编译/运行时考虑实例的创建时,这如何工作?
这是一个Singleton类声明的示例:
static
我知道该类及其属性将仅创建一次,并且对该类对象的任何引用都将指向内存中的同一点。我的困惑特别在于为什么我们要在其内部创建Singleton的第一个实例。
答案 0 :(得分:2)
基本上static
变量是始终可通过类本身访问的类变量。
我建议阅读更深入的static
here
通过在类内部包含一个包含类本身对象的静态变量,您可以确保在运行时已经存在该类的对象(或者至少在首次访问Person.instance
时) )。
对于Swift中真正的singleton
来说,必须使该类init
的{{1}}像这样:
private
这样,您可以确保在任何给定时间实际上只存在一个对象(因此名为
public class Person {
static let instance = Person()
var name: String
let age: Int
private init() {
self.name = "Alan Turing"
self.age = 42
}
}
)。