swift 单例

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方法创建单例类的实例

你可能感兴趣的:(swift 单例)