方式1(静态常量)
class MyClass {
static let shared = MyClass()
private init() { }
}
简洁的不要不要,我最喜欢使用此方式实现单例
方式2(内部结构体)
class MyClass {
static var shared: MyClass {
struct Static {
static let sharedInstance = MyClass()
}
return Static.sharedInstance;
}
private init() { }
}
看起来是方式1的复杂版(变异版),在开发中我基本上不使用过此方式
方式3(全局变量)
fileprivate let sharedInstance = MyClass()
class MyClass {
static var shared: MyClass {
return sharedInstance
}
fileprivate init() { }
}