单例创建的方式

单例的创建最核心的思想就是必须保证对象只被创建一次,下面介绍两种创建单例的方式。

加锁型。

+(instancetype)defaultManager{
    static StateManager * manager = nil;
    @synchronized(manager) {
        if (manager == nil) {
            manager = [[self alloc]init];
        }
    }
    return manager;
}

利用GCD的dispatch_once_t。

+(instancetype)shareManager{
    static StateManager * manager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        manager = [[self alloc] init];
    });
    return manager;
}

核心思想明白,其他就不多说了。

你可能感兴趣的:(移动端_iOS)