单例

作者: Mory | 来源:发表于2017-11-02 10:01 被阅读11次

    单例是经常使用的一种设计模式,简便快捷。
    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;
    }
    

    相关文章

      网友评论

          本文标题:单例

          本文链接:https://www.haomeiwen.com/subject/wlcopxtx.html