单例

作者: HeavenWong | 来源:发表于2016-07-14 17:48 被阅读31次
    • 内存中只有一个对象实例
    • 提供一个全局访问点

    OC中的单例

    + (instancetype)sharedManager {
        static id instance;
    
        static dispatch_once_t onceToken;
        NSLog(@"%ld", onceToken);
    
        dispatch_once(&onceToken, ^{
            instance = [[self alloc] init];
        });
    
        return instance;
    }
    

    swift中的单例

    static var instance: NetworkTools?
    static var token: dispatch_once_t = 0
    
    /// 在 swift 中类变量不能是存储型变量
    class var sharedNetworkTools: NetworkTools {
        dispatch_once(&token, { () -> Void in
            self.instance = NetworkTools()
        })
    
        return self.instance!
    }
    

    swift改进过的单例

    private static let instance = NetworkTools()
    /// 在 swift 中类变量不能是存储型变量
    class var sharedNetworkTools: NetworkTools {
        return instance
    }
    
    

    相关文章

      网友评论

        本文标题:单例

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