创建一个header头文件
把下面代码copy进去
#define SingletonH + (instancetype)sharedInstance;
#define SingletonM \
static id _instance; \
+ (instancetype)allocWithZone:(struct _NSZone *)zone \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [super allocWithZone:zone]; \
}); \
return _instance; \
} \
+ (instancetype)sharedInstance \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
_instance = [[self alloc] init]; \
}); \
return _instance; \
} \
- (id)copyWithZone:(NSZone *)zone \
{ \
return _instance; \
}
然后把header.h引入到要创建的单例类的.h文件中
在.h文件中写SingletonH
.m文件中写SingletonM
就创建好了一个单例.
(以后再创建单例,就像下面这两幅图一样,非常的简单,两行代码搞定)
.h文件
.m文件