美文网首页
iOS简单学之10-单例

iOS简单学之10-单例

作者: 南风无影 | 来源:发表于2016-11-15 10:00 被阅读9次

    简单说来,单例就是使得类中的一个对象成为系统中的唯一实例。

    iOS 4.0 及以后, 我们一般用这种方法来创建单例。

    + (instancetype)sharedInstance{
        //必须静态或全局
        static YFSessionManager *sharedInstance; 
        static dispatch_once_t onceToken;
        
        dispatch_once(&onceToken, ^{
    
            sharedInstance = [[YFSessionManager alloc] init];
            sharedInstance.recodeSessions = [NSMutableArray new];
        });
        
        return sharedInstance;
    }
    

    查看函数dispatch_once的原型

     void dispatch_once(
        dispatch_once_t *predicate,
        dispatch_block_t block);
    
    第一个参数predicate: 检查后面第二个参数所代表的代码块是否被调用的谓词,
    第二个参数则是在整个应用程序中只会被调用一次的代码块。
    dispach_once函数中的代码块只会被执行一次,而且还是线程安全的。
    

    相关文章

      网友评论

          本文标题:iOS简单学之10-单例

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