单例类

作者: 慢慢来111 | 来源:发表于2016-11-25 14:12 被阅读17次

GCD实现单例模式

当[[self alloc] init]时,会默认调用+ (instancetype)allocWithZone:(struct _NSZone *)zone;这个方法而这个
方法,就是在给对象分配内存空间,zone想当与一个内存池,allocWithZone,dealloc 都是在这个内粗池中操作。

1. 声明一个静态的对象

 static id _instance;

2. 重写copy方法

- (id)copyWithZone:(NSZone *)zone{
    return _instance;
}

3. 重写alloc方法

+ (instancetype)allocWithZone:(struct _NSZone *)zone{

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        _instance = [super allocWithZone:zone];

    });

    return _instance;

}

4. 构造方法

+ (instancetype)sharedSingleton{

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        _instance = [[self alloc] init];

    });

    return _instance;

}

相关文章

  • 第3章 创建型模式-单例模式

    ■ 饿汉式单例类 ■ 懒汉式单例类 ■ 单例模式的实例

  • 单例模式

    特点 单例类只有1个实例对象 该单例对象必须由单例类自行创建 单例类对外提供一个访问该单例的全局访问点 结构 单例...

  • 单例模式

    1. 什么是单例模式? 创建单例类的方法叫单例模式. 单例类, 就是只能产生一个对象的类. 2. 为什么使用单例模...

  • 单例模式

    一、定义与特点 单例模式的特点 单例类只有一个实例对象 该单例对象必须由单例类自行创建 单例类对外提供一个访问该单...

  • OC - 单例模式

    导读: 一、什么是单例模式 二、单例的作用 三、常见的单例类 四、自定义单例类的方法 一、什么是单例模式 单例模式...

  • 设计模式(单例模式)

    单例模式 单例模式有以下特点: 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提...

  • Unity3D-单例类Instance

    今天介绍Unity中所有使用的单例类 万能单例类 雨落随风提供单例类

  • Kotlin中的单例实现原理

    1.使用Object关键字进行单例类声明 2.单例类的使用 3. 单例类的实现原理

  • 单例模式

    什么是单例模式? 一个类只允许创建一个实例,那个类就是单例类。这个模式就是单例模式。单例模式实现方式:饿汉式:实现...

  • 单例模式

    单例模式的特点 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其它对象提供这一实例 写单...

网友评论

      本文标题:单例类

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