单例
要实现单例,首先需要一个static的指向类本身的对象,其次需要一个初始化类函数
once方式创建单例用的时间少
static Configuration *instance;
+ (instancetype)defaultConfiguration{
// 保证线程安全
@synchronized(self){
if (instance == nil) {
instance = [[self alloc] init];
}
}
return instance;
}
+ (instancetype)defaultConfigurationOnce{
//保证线程安全
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
if (instance == nil) {
instance = [[self alloc] init];
}
});
return instance;
}