Swift中的單例

轉(zhuǎn)戰(zhàn)swift有幾天了,接觸到了swift中的單例,下面介紹一下swift中的單例:

仿照OC中的單例的寫(xiě)法,寫(xiě)一個(gè)常用的網(wǎng)絡(luò)處理單例

class NetworkTools: NSObject {

    static var onceToken: dispatch_once_t = 0
    
    static var tools: NetworkTools?
 //單例訪問(wèn)的函數(shù)
    class func sharedTools() -> NetworkTools {
  dispatch_once(&onceToken) { () -> Void in
            tools = NetworkTools()
        }
        return tools!   
    }
}

上面的寫(xiě)法也是單例,但是沒(méi)有swift范,下面的才是swift中的真正的單例

class NetworkTools: NSObject {
    
    var post: String?
    //  swift單例的寫(xiě)法
    static let networkTools: NetworkTools = {
        let network = NetworkTools()
        network.post = "Post"
        return network
    }()

如果在創(chuàng)建單例時(shí)不需要做任何操作的話(huà),你完全可以這樣寫(xiě)

class NetworkTools: NSObject {

var post: String?

static let networkTools: NetworkTools = NetworkTools()
}

調(diào)用時(shí)直接點(diǎn)出來(lái)方法并使用即可

 let tools = NetworkTools.networkTools
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 往事回憶之ObjC單例Swift是Objective-C的一種自然演變,它用如下的方式實(shí)現(xiàn)單例: 在這個(gè)現(xiàn)成方案中...
    王小賓閱讀 3,207評(píng)論 0 5
  • 單例模式在程序設(shè)計(jì)中是一種很重要的設(shè)計(jì)模式,它的核心思想是單例類(lèi)在應(yīng)用程序的整個(gè)生命周期中的實(shí)例都只存在一個(gè)(當(dāng)然...
    紅色沸點(diǎn)閱讀 966評(píng)論 0 1
  • 項(xiàng)目開(kāi)發(fā)中往往經(jīng)常使用單例模式,單例的目的: 內(nèi)存中只有一個(gè)對(duì)象實(shí)例 提供一個(gè)全局訪問(wèn)點(diǎn) OC 中的單例寫(xiě)法 Sw...
    captain_Lu閱讀 378評(píng)論 0 2
  • 這些火花出自5.1至5.31,它大多數(shù)在清晨閃耀,結(jié)句無(wú)不是“各位早安”,并獻(xiàn)上三只可愛(ài)的紅玫瑰和笑臉。可見(jiàn)這是一...
    我心向月閱讀 434評(píng)論 0 2
  • 在群獸大會(huì)選出十二生肖之后,天庭給每一個(gè)生肖都戴上了一個(gè)屬于自己的生命計(jì)時(shí)器,為了讓他們能夠約束自己,做好...
    南島閱讀 198評(píng)論 0 0