OC 我们都是用 dispatch_one来创建单例
在swift早期版本,Swift用dispatch_one机制在后台支持线程安全的全局lazy初始化和静态属性。static var在背后已经在使用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,将这个单例类不能被继承
- 设置初始化方法为私有,避免外部对象通过访问init方法创建单例类的实例