iOS 單例通用宏(備忘)

#define SingleH(name) +(instancetype)share##name;

#if __has_feature(objc_arc)

//條件滿足ARC

#define SingleM(name) static id _instance;\

+(instancetype)allocWithZone:(struct _NSZone *)zone\

{\

static dispatch_once_t onceToken;\

dispatch_once(&onceToken, ^{\

_instance = [super allocWithZone:zone];\

});\

\

return _instance;\

}\

\

+(instancetype)share##name\

{\

return [[self alloc]init];\

}\

\

-(id)copyWithZone:(NSZone *)zone\

{\

return _instance;\

}\

\

-(id)mutableCopyWithZone:(NSZone *)zone\

{\

return _instance;\

}

#else

//MRC

#define SingleM(name) static id _instance;\

+(instancetype)allocWithZone:(struct _NSZone *)zone\

{\

static dispatch_once_t onceToken;\

dispatch_once(&onceToken, ^{\

_instance = [super allocWithZone:zone];\

});\

\

return _instance;\

}\

\

+(instancetype)share##name\

{\

return [[self alloc]init];\

}\

\

-(id)copyWithZone:(NSZone *)zone\

{\

return _instance;\

}\

\

-(id)mutableCopyWithZone:(NSZone *)zone\

{\

return _instance;\

}\

-(oneway void)release\

{\

}\

\

-(instancetype)retain\

{\

return _instance;\

}\

\

-(NSUInteger)retainCount\

{\

return MAXFLOAT;\

}

#endif



.H文件 ?使用 ?

SingleH(name)

.M文件使用

SingleM(name)

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

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

  • 在開(kāi)發(fā)中經(jīng)常會(huì)用到單例設(shè)計(jì)模式,目的就是為了在程序的整個(gè)生命周期內(nèi),只會(huì)創(chuàng)建一個(gè)類的實(shí)例對(duì)象,而且只要程序不被殺死...
    不要重名就好閱讀 597評(píng)論 0 0
  • 在開(kāi)發(fā)中經(jīng)常會(huì)用到單例設(shè)計(jì)模式,目的就是為了在程序的整個(gè)生命周期內(nèi),只會(huì)創(chuàng)建一個(gè)類的實(shí)例對(duì)象,而且只要程序不被殺死...
    VincentHK閱讀 733評(píng)論 0 3
  • 單例模式的作用:可以保證在程序運(yùn)行過(guò)程,一個(gè)類只有一個(gè)實(shí)例,而且該實(shí)例易于供外界訪問(wèn),從而方便地控制了實(shí)例個(gè)數(shù),并...
    BEYOND黃閱讀 318評(píng)論 0 3
  • 前段時(shí)間去到一個(gè)以前很要好的朋友那里差不多待了幾天,一是因?yàn)榇_實(shí)是很久沒(méi)見(jiàn)了,上一次見(jiàn)面差不多還是大1暑假接近尾期...
    林花逝閱讀 6,617評(píng)論 4 3
  • 一生中,有人牽掛,是一種喜悅,是一份安暖的舒適;被人牽掛,是一種感動(dòng),是一種開(kāi)心。牽掛的感覺(jué),是寒冬里的一縷...
    f16116f271dd閱讀 433評(píng)論 1 2

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