每个人都看过或使用过这样的代码来创建单例实例:
static MySingletonClass *instance;
+(MySingletonClass*)sharedInstance
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [self new];
});
return instance;
}
我想知道:为什么不使用+ load方法,对于静态加载的类调用一次?这将允许我们省略检查实例存在:
static MySingletonClass *instance;
+(void)load
{
instance = [self new];
}
假设-init不依赖于另一个类' +要调用的加载方法(应该是这样)。什么可能出错?有哪些缺点或隐患?