单例模式
这个类永远只能创建一个对象 (同一个)
需要使用一个类方法来创建对象 让这个类不能再创建不同对象了
步骤:
- 创建一个类 YQConfig
- 写一个类方法
```
+(instancetype)config{
static YQConfig*instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance=[[YQConfig alloc]init];
});
return instance;
}
```
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
YQConfig*config1=[[YQConfig alloc]init ];
NSLog(@"config1 %@ ",config1);
YQConfig*config2=[[YQConfig alloc]init];
NSLog(@"config2 %@ ",config2);
YQConfig *config3=[YQConfig config];
NSLog(@"config3 %@",config3 );
YQConfig*config4=[YQConfig config ];
NSLog(@"config4 %@ ",config4 );
}
运行结果为:
2016-07-19 11:34:20.996 单例模式[5486:2851930] config1 <YQConfig: 0x7fcedae7dc90>
2016-07-19 11:34:20.997 单例模式[5486:2851930] config2 <YQConfig: 0x7fcedad12410>
2016-07-19 11:34:20.997 单例模式[5486:2851930] config3 <YQConfig: 0x7fcedac11ba0>
2016-07-19 11:34:20.997 单例模式[5486:2851930] config4 <YQConfig: 0x7fcedac11ba0>
可以看出:最后两个地址分配的是一样的