美文网首页
singleton是否可以这样写

singleton是否可以这样写

作者: 4VZhang | 来源:发表于2018-09-17 19:05 被阅读9次
+ (instancetype)shareUser {
    static JSBUserModel *_user;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _user = [NSKeyedUnarchiver unarchiveObjectWithFile:SavePath];
        if (_user == nil) {
            _user = [JSBUserModel new];
        }
    });
    return _user;
}

在修改老项目的旧代码时,我和同事发现了这行几行代码!这是一个用户数据模型(userModel),用于存储用户的信息。

登录获取用户数据后,转换成模型,并归档到本地。当使用的时候到本地解档!解档!单例方法中解档?WHAT ?什么鬼?

疑惑:单例方法shareUser中的dispatch_once(&onceToken, ^{ xxxxxx}只执行一次,如何在使用的时候本地解档呢?我们对着代码改了又改,看了又看!

一个上午,当我们多次command + R重新运行项目都需要重新输入帐号密码的时候,顿时疑惑被解开:

单例指的是在程序运行期间存在与内存中的唯一的示例对象,当程序死掉或者被杀掉的时候,应用占用的内存会被销毁,内存中的单例自然也会被销毁掉!!
当再次启用应用的时候,会创建新的内存---新的单例实例!自然会走单例方法中`dispatch_once(&onceToken, ^{ xxxxxx}中的代码

相关文章

  • singleton是否可以这样写

    在修改老项目的旧代码时,我和同事发现了这行几行代码!这是一个用户数据模型(userModel),用于存储用户的信息...

  • iOS知识点总结(1)

    1. iOS单例的实现方式? 之前总是这样写: static Singleton *shareSingleton ...

  • 是否可以这样想

    同一轮太阳洒在身上 我们的脚步都是自东向西的方向 走过的山岗与河流一个模样 朝暮间共度了时光 同一片白云在头顶倘佯...

  • DCL单例模式

    我们第一次写单例模式是下面这样的: 假设这样的场景:两个线程并发调用Singleton.getInstance()...

  • 你是否愿意我这样写你

    其实这个问题也可以是,你是否愿意我写这样的你,你是否觉得我写的是你。 最开始写关于金贵儿的目的好单纯,就是想写啊写...

  • 小说可以这样写

    01关于人物 人物的面貌分为外在长相和内在性格,好的小说不仅要刻画外在的长相特点,同时更注意刻画内在的性格特点,而...

  • 小楷可以这样写

    八大山人小楷《临蔡邕书卷》欣赏

  • 小说可以这样写

    怎样写故事,怎样写小说?没有写作天赋怎么办? 畅销书作家,曾经写第一篇小说就被判定为没才华的罗泽尔,经过十年的摸索...

  • 可以,这样写吗?

    我就是一个"傻子”,两耳不闻窗外事,一心只读圣贤书。什么事情都被拉着、拽着,很懒惰的一个人。 不知道,这样写推荐作...

  • 评语可以这样写

    岁末年尾,给学生的期末通知书写评语,是每一位班主任的必修课,作为双减政策落地后的第一次,班主任在给学生写评语时可...

网友评论

      本文标题:singleton是否可以这样写

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