單例模式1
//當(dāng)前用的最多的方法,高大上 GCD
+(instancetype)sharePerson
{
static Person *p = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//這里代碼只會被初始化一次
p = [[Person alloc]init];
});
return p;
}
單例模式2
+(JYGHMainManager *)sharedMainManager
{
static JYGHMainManager *shareRootMainManager = nil;
@synchronized(self)
{
if(shareRootMainManager == nil)
{
shareRootMainManager = [[self alloc] init];
}
}
return shareRootMainManager;
}