创建单例的两种方式
只要使用其中一种
+ (id)defaultManager
{
// 1. 第一种方式
//静态变量只会初始化一次
static Manager *sharedInstance = nil;
//每次调用defaultManager的时候都返回同一个对象
if (sharedInstance == nil) {
sharedInstance = [[Manager alloc] init];
}
// 2. 第二种方式
//只会执行一次,线程安全
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[Manager alloc] init];
});
return sharedInstance;
}