美文网首页
iOS开发 伪单例

iOS开发 伪单例

作者: 歐陽公子 | 来源:发表于2019-03-07 17:12 被阅读0次

伪单例顾名思义就是创建单例的时候有可能不能保障唯一的实例,原因是别人可能并不知道你是单例,在生成的时候用[[class alloc] init]的形式,allocWithZone能保证不管哪种形式都能确保是单例。

一般我们习惯在定义方法share中使用dispatch_once函数(这个函数的作用就是保证block)来保证单例模式在整个程序中只被创建一次。但是之前看到有个同学是覆写+(instancetype)allocWithZone:(struct _NSZone *)zone方法中添加代码,保证只被创建一次。

单例的使用场景概括如下:

控制资源的使用,通过线程同步来控制资源的并发访问。

控制实例的产生,以达到节约资源的目的。

控制数据的共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。

+(instancetype)sharedInstance

{

    staticdispatch_once_tonceToken;

    dispatch_once(&onceToken,^{

        _sharedInstance =[[super allocWithZone:NULL]init];

    });

    return_sharedInstance;

}

+(id)allocWithZone:(struct_NSZone *)zone

{

    return[TestOyqNSObject sharedInstance];

}

+(instancetype)alloc

{

    return[TestOyqNSObject sharedInstance];

}

-(id)copy

{

    returnself;

}

-(id)mutableCopy

{

    returnself;

}

-(id)copyWithZone:(struct_NSZone *)zone

{

    returnself;

}

相关文章

  • iOS开发 单例使用问题

    iOS开发 单例使用问题 iOS开发 单例使用问题

  • iOS开发 单例使用问题

    iOS开发 单例使用问题 iOS开发 单例使用问题

  • iOS开发 伪单例

    伪单例顾名思义就是创建单例的时候有可能不能保障唯一的实例,原因是别人可能并不知道你是单例,在生成的时候用[[cla...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • iOS - 清空单例

    iOS开发时有时候我们需要清空单例:

  • iOS单例模式容错处理

    ios 单例模式容错处理 1、单例模式的使用和问题解决 在ios开发的过程中,使用单例模式的场景非常多。系统也有很...

  • iOS 伪单例模式

    本文仅探讨 iOS 中单例的适用场景及生命周期管理,如需单例教程及其定义作用的请访问:设计模式系列14--单例模式...

  • @sychronized和dispatch_once,以及对单例

    在iOS开发中,经常使用到单例。单例是Cocoa中被广泛使用的设计模式之一。单例使得某个类在整个applicati...

  • iOS 单例模式

    关于单例模式的详解,看完这几篇,就完全了然了。iOS 单例模式iOS中的单例模式iOS单例的写法

  • 单例的2种写法

    单例模式是iOS开发中最常用的设计模式,iOS的单例模式有两种官方写法,如下: 1,常用写法 import "Se...

网友评论

      本文标题:iOS开发 伪单例

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