什么是单例模式呢?
简单的来说,一个单例类,在整个程序中只有一个实例,并且提供一个类方法供全局调用,在编译时初始化这个类,然后一直保存在内存中,到程序(APP)退出时由系统自动释放这部分内存。
示例代码:
#import "FZSingletonMode.h" @implementation FZSingletonMode static FZSingletonMode * singletonMode = nil; #pragma mark - 初始化方法 +(instancetype)allocWithZone:(struct _NSZone *)zone{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ singletonMode = [super allocWithZone:zone]; }); return singletonMode; } +(instancetype)shareSingleton{ if (singletonMode == nil) { return singletonMode = [FZSingletonMode new]; } return singletonMode; } #pragma mark - 重写 copyWithZone: 方法,防止单例对象执行copy操作 -(id)copyWithZone:(NSZone *)zone{ return singletonMode; } #pragma mark - 重写mutableCopyWithZone: 方法,单例对象执行mutableCopy操作 -(id)mutableCopyWithZone:(NSZone *)zone{ return singletonMode; } @end