单例


单例在开发中算是很实用了分享两种写法

static LOSingleton * shareInstance;
+( LOSingleton *)sharedInstance{
@synchronized(self){           
    if (shareInstance == nil) {
        shareInstance = [[super allocWithZone:NULL] init];
    }
}
return shareInstance;
}



+ (LOSingleton *) sharedInstance
{
static  LOSingleton *sharedInstance = nil ;
static  dispatch_once_t onceToken;  // 锁
dispatch_once (& onceToken, ^ {     // 最多调用一次
    sharedInstance = [[self  alloc] init];
});
return  sharedInstance;
}