單例的宏定義

用宏定義把單例忘了吧。。


#ifndef Singleton_h

#define Singleton_h

#define SingletonInterface(name)+ (instancetype)shared##name;

#define SingletonImplementation(name) \

static id _instance; \

+ (instancetype)shared##name \

{ \

static dispatch_once_t onceToken; \

dispatch_once(&onceToken, ^{ \

_instance = [[self alloc] init]; \

}); \

return _instance; \

} \

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

{ \

static dispatch_once_t onceToken; \

dispatch_once(&onceToken, ^{ \

_instance = [super allocWithZone:zone]; \

}); \

return _instance; \

} \

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

{ \

return _instance; \

}

#endif/* Singleton_h */

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 序言 單例的使用在我們開(kāi)發(fā)iOS程序的時(shí)候的使用率是非常高的,在我們寫(xiě)一個(gè)單例的時(shí)候,可能不止會(huì)用到一個(gè)單例,然而...
    奔波兒霸and霸波兒奔閱讀 293評(píng)論 0 2
  • 在開(kāi)發(fā)中經(jīng)常會(huì)用到單例設(shè)計(jì)模式,目的就是為了在程序的整個(gè)生命周期內(nèi),只會(huì)創(chuàng)建一個(gè)類(lèi)的實(shí)例對(duì)象,而且只要程序不被殺死...
    不要重名就好閱讀 597評(píng)論 0 0
  • #define DEFINE_SINGLETON_FOR_HEADER(className) \ \ + (cla...
    IWtCTworld閱讀 557評(píng)論 0 0
  • 在開(kāi)發(fā)中經(jīng)常會(huì)用到單例設(shè)計(jì)模式,目的就是為了在程序的整個(gè)生命周期內(nèi),只會(huì)創(chuàng)建一個(gè)類(lèi)的實(shí)例對(duì)象,而且只要程序不被殺死...
    VincentHK閱讀 733評(píng)論 0 3
  • 線(xiàn)程間的通信 從子線(xiàn)程回到主線(xiàn)程 延時(shí)執(zhí)行 iOS常見(jiàn)的延時(shí)執(zhí)行有兩種方式p 調(diào)用NSObject的方法 p 使用...
    一抹月光3053閱讀 816評(píng)論 1 12

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