单例

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

}

 

posted @ 2015-06-26 14:26  城里城外  阅读(105)  评论(0编辑  收藏  举报