单例的PCH宏定义

来源:互联网 发布:猪八戒淘宝直播 编辑:程序博客网 时间:2024/06/09 17:15
#define SingleH(name) +(instancetype)share##name;#if __has_feature(objc_arc)///ARC#define SingleM(name) static id  _instance;\+(instancetype)allocWithZone:(struct _NSZone *)zone\{\    static dispatch_once_t onceToken;\    dispatch_once(&onceToken, ^{\        _instance = [super allocWithZone:zone];\    });\    return _instance;\}\+(instancetype)share##name\{\    return [[self alloc]init];\}\-(id)copyWithZone:(NSZone *)zone\{\    return _instance;\}\\-(id)mutableCopyWithZone:(NSZone *)zone\{\    return _instance;\}#else//MRC#define SingleM(name) static id  _instance;\+(instancetype)allocWithZone:(struct _NSZone *)zone\{\static dispatch_once_t onceToken;\dispatch_once(&onceToken, ^{\_instance = [super allocWithZone:zone];\});\return _instance;\}\+(instancetype)share##name\{\return [[self alloc]init];\}\-(id)copyWithZone:(NSZone *)zone\{\return _instance;\}\\-(id)mutableCopyWithZone:(NSZone *)zone\{\return _instance;\}\-(oneway void)release\{}\\-(instancetype)retain\{\    return _instance;\}\\-(NSUInteger)retainCount\{\    return MAXFLOAT;\}#endif

0 0