iOS 单例的简单写法
程序员文章站
2022-07-13 23:45:58
...
用法:
将下方代码写进一个header文件中,然后哪个类需要写为单例模式的话,导入头文件,然后在该h文件中写EASingletonH(类名),在m文件中写EASingletonM(类名),至此,你已经可以在别的类中尝试。
调用方式:
举例:
以User类为例[User sharedUser]
可以这么使用,那么说明你的单例已经可以正常使用了
// .h文件
#define EASingletonH(name) + (instancetype)shared##name;
// .m文件
#define EASingletonM(name) \
static id _instance; \
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [super allocWithZone:zone]; \
}); \
return _instance; \
} \
\
+ (instancetype)shared##name \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [[self alloc] init]; \
}); \
return _instance; \
} \
\
- (id)copyWithZone:(NSZone *)zone \
{ \
return _instance; \
}
上一篇: iOS 单例模式的写法
下一篇: 过滤文件,并打印出所有的文件,