单例在ios中很常见
总结常用的单例创建方法有:
static LSDBManager*_lsDBManager;
@implementation LSDBManager
//获取当前类的单例对像
+(LSDBManager*)shareDBManager
{
if (!_lsDBManager) {
_lsDBManager=[[LSDBManager alloc]init];
}
return _lsDBManager;
}
另外还可以用dispatch_once来实现+ (instancetype)sharedClient
{
static LSClient *_sharedClient = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_sharedClient = [[LSClient alloc]init];
});
return _sharedClient;
}
dispatch_once的作用是让bolck只执行一次,在创建单例的好处是可以保证线程安全