码迷,mamicode.com
首页 > 其他好文 > 详细

单例自定义

时间:2016-05-10 12:48:13      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

Singleton.h

/*
专门用来保存单例代码
 最后一行不要加 \
*/

// @interface
#define singleton_interface(className) \
+ (className *)shared##className;


// @implementation
#define singleton_implementation(className) \
static className *_instance; \
+ (id)allocWithZone:(NSZone *)zone \
{ \
    static dispatch_once_t onceToken; \
    dispatch_once(&onceToken, ^{ \
        _instance = [super allocWithZone:zone]; \
    }); \
    return _instance; \
} \
+ (className *)shared##className \
{ \
    static dispatch_once_t onceToken; \
    dispatch_once(&onceToken, ^{ \
        _instance = [[self alloc] init]; \
    }); \
    return _instance; \
}

引入后直接调用即可

单例自定义

标签:

原文地址:http://www.cnblogs.com/linxiu-0925/p/5477224.html

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