#創(chuàng)建一個單例3步1.在需要創(chuàng)建單例的類中 #import"HWSingleton.h" ,導入頭文件2.在.h 文件中? 加入代碼 HWSingletonM3.在.m 文件中? 加入代碼 HWSingletonH--------------- 我是分割線 --------------## Dog.h``` #import#import "HWSingleton.h" @interface Dog : NSObject HWSingletonH @end.```## Dog.m```#import "Dog.h"@interface Dog ()@end
@implementation Dog
HWSingletonM
@end
```
懵逼了吧, HWSingleton.h里到底是啥?
其實里面就是兩個宏,直接上代碼
# HWSingleton.h中的代碼
```
// .h文件
#define HWSingletonH? + (instancetype)shareInstance;
// .m文件
#define HWSingletonM \
\
static id _instance;\
+ (instancetype)allocWithZone:(struct _NSZone *)zone{\
\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
_instance = [super allocWithZone:zone];\
});\
return _instance;\
}\
\
+ (instancetype)shareInstance{\
static dispatch_once_t onceToken;\
dispatch_once(&onceToken, ^{\
_instance = [[self alloc]init];\
});\
return _instance;\
}\
- (id)copyWithZone:(NSZone *)zone{\
return _instance;\
}
```