单例是经常使用的一种设计模式,简便快捷。
1:使用性能较好的方式
+ (instancetype)shareInstance{
static Singleton* single;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
single = [[Singleton alloc] init];
});
return single;
}
2:不引用时可释放的方式(使用 weak)
+ (id)sharedInstance
{
static __weak SingletonClass *instance;
SingletonClass *strongInstance = instance;
@synchronized(self) {
if (strongInstance == nil) {
strongInstance = [[[self class] alloc] init];
instance = strongInstance;
}
}
return strongInstance;
}