单例模式是iOS开发中常用到得的,下面介绍一下创建的方法:
1,使用GCD的dispatch_once方法
+ (id)sharedObject{
static ViewController *viewCtrl;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
viewCtrl = [[ViewController alloc] init];
});
return viewCtrl;
}
2,使用线程锁来创建
+ (id)sharedObject{
static ViewController *viewCtrl;
@synchronized(viewCtrl){
if (viewCtrl == nil) {
viewCtrl = [[ViewController alloc] init];
}
}
return viewCtrl;
}
一般使用第一种方法,效率更加高