swift之單例模式

swift單例模式的幾種方式:

1. 全局變量

private let _singleton = Singleton()
class Singleton: NSObject {
    class var sharedInstance: Singleton {
        get {
            return _singleton
        }
    }
}

2. 內部變量

class Singleton {
    class var sharedInstance: Singleton {
        get {
            struct SingletonStruct {
                static let singleton: Singleton = Singleton()
            }
            return SingletonStruct.singleton
        }
    }
}

3. dispatch_once方式

class Singleton {
    class var sharedInstance: Singleton {
        get {
            struct SingletonStruct {
                static var onceToken:dispatch_once_t = 0
                static var singleton: Singleton? = nil
            }
            dispatch_once(&SingletonStruct.onceToken, { () -> Void in
                SingletonStruct.singleton = Singleton()
            })
            return SingletonStruct.singleton!
        }
    }
}



發佈了42 篇原創文章 · 獲贊 10 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章