单例(Singleton)模式
一、如果一个类始终只能创建一个实例,则这个类被称为单例类。
单例类可通过static全局变量来实现,程序考虑定义一个static全部变量,该变量用于保存已创建的Singleton对象——每次程序需要获取该实例时,程序先判断该static全局变量是否为nil,如果该全局变量为nil,则初始化一个实例并赋值给static全局变量。
1.在main()函数中调用单例方法
[Single defaultManager]; //单例是类方法 需要通过类名调用
2.在类声明文件中声明一个单例方法
- (id)defaultManager;
3.在类实现文件中
在这个类方法中控制类最多只会产生一个实例。
首先在声明文件中定义一个静态全局变量
static Single *single = nil;
单例方法实现
+ (id)defaultManager
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
single = [[Single alloc]init];
});
return single;
}