//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄
/**
1.SH前缀是作者名称简称"SH".
2.宏定义直接拷贝到pch文件中即可.
*/
一、单例使用
1.使用方法.h
#import
@interfaceMineAuthentication :NSObject
SHSingleInstance_H_(AuthenticationManager )
@end
2.使用方法.m
#import"SHMineAuthentication.h"
@interfaceMineAuthentication ()
@end
@implementationMineAuthentication
SHSingleInstance_M_(AuthenticationManager )
@end
二、单例实现和定义
//1.单例实现和定义宏--方便.h文件使用
#define SHSingleInstance_H_(name) \
+ (instancetype)shared##name;
//2.单例实现和定义宏--方便.m文件使用
#define SHSingleInstance_M_(name) \
static id _instance = nil; \
+ (instancetype)shared##name \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
if (_instance == nil) \
{ \
_instance = [[self alloc] init]; \
} \
}); \
return _instance; \
} \
\
+ (instancetype)allocWithZone:(struct _NSZone *)zone \
{ \
static dispatch_once_t onceToken; \
dispatch_once(&onceToken, ^{ \
if (_instance == nil) \
{ \
_instance = [super allocWithZone:zone]; \
} \
}); \
return _instance; \
} \
\
+ (id)copyWithZone:(struct _NSZone *)zone \
{ \
return _instance; \
} \
+ (id)mutableCopyWithZone:(struct _NSZone *)zone \
{ \
return _instance; \
}
三、单例调用
[MineAuthenticationsharedAuthenticationManager];