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方法创建单例类的实例
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。