码迷,mamicode.com
首页 > 移动开发 > 详细

iOs开发 单例模式 省懒宏

时间:2014-06-26 12:59:14      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:class   blog   os   name   type   io   

#define singleton_h(name) + (instancetype)shared##name;

#if __has_feature(obj_arc)
#define singleton_m(name)static id _instance;+ (instancetype)shared##name{static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{_instance = [[self alloc] init];});return _instance;}+ (id)allocWithZone:(struct _NSZone *)zone{static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{_instance = [super allocWithZone:zone];});return _instance;}+ (id)copyWithZone:(struct _NSZone *)zone{return _instance;}

#else
#define singleton_m(name)static id _instance;+ (instancetype)shared##name{    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        _instance = [[self alloc] init];    });    return _instance;}+ (id)allocWithZone:(struct _NSZone *)zone{    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        _instance = [super allocWithZone:zone];    });    return _instance;}+ (id)copyWithZone:(struct _NSZone *)zone{    return _instance;}- (oneway void)release{}- (id)autorelease{    return _instance;}- (id)retain{    return _instance;}- (NSUInteger)retainCount{    return 1;}
#endif

 

iOs开发 单例模式 省懒宏,布布扣,bubuko.com

iOs开发 单例模式 省懒宏

标签:class   blog   os   name   type   io   

原文地址:http://www.cnblogs.com/dyf520/p/3809302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!