dispatch_once創(chuàng)建單例

寫藍(lán)牙的時(shí)候,需要使用到單例,于是參照網(wǎng)上的例子,使用寫了這樣的一個(gè)單例,權(quán)當(dāng)記錄:

+(instancetype)sharedInstance{
    static BLEManager *_sharedInstance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedInstance = [[BLEManager alloc]init];
    });
    return _sharedInstance;
}

dispatch_once被廣泛使用在單例、緩存等代碼中,用以保證在初始化時(shí)執(zhí)行一次某任務(wù)。

dispatch_once的作用正如其名:對于某個(gè)任務(wù)執(zhí)行一次,且只執(zhí)行一次。 dispatch_once函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)onceToken用來保證執(zhí)行一次,第二個(gè)參數(shù)是要執(zhí)行一次的任務(wù)block。

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

相關(guān)閱讀更多精彩內(nèi)容

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