创建 SingleModel 类,第一种是用Grand Central Dispatch创建比较常用
//GCD
创建
+(instancetype)shareSingleModel
{
static SingleModel *single = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
single = [[SingleModel alloc]init];
});
return single;
}
{
static SingleModel *single = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
single = [[SingleModel alloc]init];
});
return single;
}
第二种是简单的加锁
//加锁加锁
+(instancetype)shareSingleTwo
{
static SingleModel *single = nil;
@synchronized(self) {
if(single == nil) {
single = [[SingleModel alloc]init];
}
}
return single;
//加锁加锁
+(instancetype)shareSingleTwo
{
static SingleModel *single = nil;
@synchronized(self) {
if(single == nil) {
single = [[SingleModel alloc]init];
}
}
return single;
}