swift 單例

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)建單例類的實例
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容