单例

要实现单例,首先需要一个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;

}

原文地址:https://www.cnblogs.com/sunshineandsand/p/4602185.html