第一種, 類常量Class constant,建議使用方式
class Singleton {
static let sharedInstance = Singleton()
}
第二種嵌套結構體變量格式
class Singleton {
class var sharedInstance: Singleton {
struct Static {
static let instance: Singleton = Singleton()
}
return Static.instance
}
}
第三種最不建議, 但最像Oc的創建方式dispatch_once
class Singleton {
class var sharedInstance: Singleton {
struct Static {
static var onceToken: dispatch_once_t = 0
static var instance: Singleton? = nil
}
dispatch_once(&Static.onceToken) {
Static.instance = Singleton()
}
return Static.instance!
}
}
原文鏈接 https://stackoverflow.com/questions/24024549/using-a-dispatch-once-singleton-model-in-swift/24147830#24147830