寫藍(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。