宏定义单例

2016-05-04  本文已影响197人  何年何月

新建.h文件##

屏幕快照 2016-05-04 下午11.47.05.png

在.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; \
}

使用方法: 新建类First
First.h中

singleton_interface(First)

First.m中

singleton_implementation(First)

First就是一个单例啦!

[[First sharedFirst] say];

Demo地址

参考文章很多,就是随便写写!Demo地址中包含指纹识别

上一篇 下一篇

猜你喜欢

热点阅读