單例模式
這個(gè)類永遠(yuǎn)只能創(chuàng)建一個(gè)對(duì)象 (同一個(gè))
需要使用一個(gè)類方法來創(chuàng)建對(duì)象 讓這個(gè)類不能再創(chuàng)建不同對(duì)象了
步驟:
- 創(chuàng)建一個(gè)類 YQConfig
- 寫一個(gè)類方法
```
+(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 );
}
運(yùn)行結(jié)果為:
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>
可以看出:最后兩個(gè)地址分配的是一樣的