我第一次学习如何在Swift中实现Singleton Pattern在本书Pro Design Patterns in Swift
中。
我开始实现Singleton Pattern的方式如下所示:
class Singleton {
class var sharedInstance: Singleton {
struct Wrapper {
static let singleton = Singleton()
}
return Wrapper.singleton
}
private init() {
}
}
时我发现了这个实现
class Singleton {
static let sharedInstance = Singleton()
private init() {
}
}
所以我的问题是,两种实现之间有什么区别?
答案 0 :(得分:4)
回到 Swift 1 天,static let
尚未实施。解决方法是创建一个包装器struct
。使用 Swift 2 ,不再需要它了。