你的位置:首页 > 操作系统

[操作系统]十一:创建和使用单例模式(宏)


 1 // .h文件 2 #define ZWSingletonH(name) + (instancetype)shared##name; 3  4 // .m文件 5 #define ZWSingletonM(name) \ 6 static id _instance; \ 7  \ 8 + (instancetype)allocWithZone:(struct _NSZone *)zone \ 9 { \10   static dispatch_once_t onceToken; \11   dispatch_once(&onceToken, ^{ \12     _instance = [super allocWithZone:zone]; \13   }); \14   return _instance; \15 } \16  \17 + (instancetype)shared##name \18 { \19   static dispatch_once_t onceToken; \20   dispatch_once(&onceToken, ^{ \21     _instance = [[self alloc] init]; \22   }); \23   return _instance; \24 } \25  \26 - (id)copyWithZone:(NSZone *)zone \27 { \28   return _instance; \29 }

注:上面代码只需要在.h文件夹中即可

如果想要使用的话,可以直接在需要设置单例模式类的.h文件中输入:ZWSingletonH(类名)

                        .m文件中输入:ZWSingletonM(类名)

需要用的时候直接:[类名 + shared类名] 即可