单例

2017-11-02  本文已影响11人  Mory

单例是经常使用的一种设计模式,简便快捷。
1:使用性能较好的方式

+ (instancetype)shareInstance{
    static Singleton* single;
    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{
        single = [[Singleton alloc] init];
    });

    return single;
}

2:不引用时可释放的方式(使用 weak)

+ (id)sharedInstance
{
    static __weak SingletonClass *instance;
    SingletonClass *strongInstance = instance;
    @synchronized(self) {
        if (strongInstance == nil) {
            strongInstance = [[[self class] alloc] init];
            instance = strongInstance;
        }
    }
    return strongInstance;
}
上一篇 下一篇

猜你喜欢

热点阅读