iOS通过宏定义来创建单例

创建一个header头文件

把下面代码copy进去

#define SingletonH + (instancetype)sharedInstance;

#define SingletonM \
static id _instance; \
+ (instancetype)allocWithZone:(struct _NSZone *)zone \
{ \
    static dispatch_once_t onceToken; \
    dispatch_once(&onceToken, ^{ \
        _instance = [super allocWithZone:zone]; \
    }); \
    return _instance; \
} \
+ (instancetype)sharedInstance \
{ \
    static dispatch_once_t onceToken; \
    dispatch_once(&onceToken, ^{ \
        _instance = [[self alloc] init]; \
    }); \
    return _instance; \
} \
- (id)copyWithZone:(NSZone *)zone \
{ \
    return _instance; \
}

然后把header.h引入到要创建的单例类的.h文件中

在.h文件中写SingletonH

.m文件中写SingletonM

就创建好了一个单例.

(以后再创建单例,就像下面这两幅图一样,非常的简单,两行代码搞定)

.h文件


.m文件

iOS通过宏定义来创建单例_第1张图片

你可能感兴趣的:(ios开发)