创建和使用单例模式(宏)
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类名] 即可