在+ load中创建单例实例

时间:2017-02-02 13:28:11

标签: objective-c singleton objective-c-runtime

每个人都看过或使用过这样的代码来创建单例实例:

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不依赖于另一个类' +要调用的加载方法(应该是这样)。什么可能出错?有哪些缺点或隐患?

0 个答案:

没有答案