单例模式的作用:保证在程序运行过程中,一个类只有一个实例对象,节约系统资源。
单例模式使用场合:在整个应用程序中,共享一份资源(这个资源只需要创建初始化一次。)
单例模式的实现方法一(推荐):将需要成为单例的类中的allocWithZone方法重写,加入GCD中的一次运行代码:
static 单例类 *_instance;
+ (instancetype) allocWithZone :(struct _NSZone *)zone {
static dispatch_once_t onceToken;
dispatch_once(&onceToken,^{
_instance = [super allocWithZone:zone];
});
return _全局变量;
}
单例类有个创建实例的类方法 shareXX
完美的单例还应该考虑到单例类的copy方法
所以应该讲copy方法重写,直接返回全局变量。