OC 我們都是用 dispatch_one來創(chuàng)建單例
在swift早期版本,Swift用dispatch_one機制在后臺支持線程安全的全局lazy初始化和靜態(tài)屬性。static var在背后已經(jīng)在使用dispatch_once了,所以從Swift 3開始,就干脆把dispatch_once顯式的取消了。
swift單例使用更簡單了
final class HttpManager: NSObject{
class func sharedInstance() -> HttpManager {
struct Static {
static let instance = HttpManager()
}
return Static.instance
}
private override init() {
super.init()
}
}
- 使用final 修飾class,將這個單例類不能被繼承
- 設(shè)置初始化方法為私有,避免外部對象通過訪問init方法創(chuàng)建單例類的實例