單例模式
這個類永遠只能創建一個對象 (同一個)
需要使用一個類方法來創建對象 讓這個類不能再創建不同對象了
步驟:
- 創建一個類 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>
可以看出:最后兩個地址分配的是一樣的