美文网首页
iOS单例两种创建方式

iOS单例两种创建方式

作者: 乱尘 | 来源:发表于2017-04-14 14:12 被阅读15次

1GCD方式创建单例

static id _instance;

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

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken,^{

_instance =[superallocWithZone:zone];

});

return_instance;

}

+(instancetype)sharedInstance

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken,^{

_instance =[[self alloc]init];

});

return_instance;

}

-(id)copyWithZone:(NSZone *)zone

{

return_instance;

}

-(id)mutableCopyWithZone:(NSZone *)zone {

return_instance;

}

2、互斥锁方式

static id _instance;

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

{

@synchronized(self){

if(_instance == nil){

_instance =[superallocWithZone:zone];

}

}

return_instance;

}

+(instancetype)sharedInstance

{

@synchronized(self){

if(_instance == nil){

_instance =[[self alloc]init];

}

}

return_instance;

}

-(id)copyWithZone:(NSZone *)zone

{

return_instance;

}

相关文章

  • iOS单例两种创建方式

    1、GCD方式创建单例 staticid_instance; +(instancetype)allocWithZo...

  • 单例设计模式

    单例设计模式:解决的是一个类只能创建一个对象 iOS的单例模式有两种官方写法,如下: 1)不使用GCD的方式 #i...

  • iOS 单例模式 - 单例对象销毁【@synchronized】

    单例对象的创建方式 单例.h 文件的实现 单例.m 文件的实现 单例对象的销毁【@synchronized创建方式...

  • iOS 单例模式 - 单例对象销毁【GCD】

    单例对象的创建方式 单例.h 文件的实现 单例的.m 文件的实现 单例对象的销毁【GCD创建的方式】 使用单例对象...

  • iOS-两种单例模式的实现

    单例模式是开发中最常用的写法之一,创建一个单例很多办法,iOS的单例模式有两种官方写法,如下: 不使用GCD 某些...

  • 8. 单例

    单例 1、GCD方式创建单例 2、互斥锁方式 销毁

  • 两种方式创建单例

    a.GCD方式: staticid_instance; +(instancetype)allocWithZone:...

  • iOS 中的强单例和弱单例

    单例是什么以及作用就不单独解释了 强单例 iOS 中常见的单例模式有两种方式: 这也是到处都能查到的调用GCD 或...

  • Swift 单例传值

    回顾 Objc 创建单例的方式: 1.创建单例 2.给单例的属性赋值 3.输出单例的属性值

  • iOS中的两种单列模式实现

    单例模式算是开发中比较常见的一种模式了。在iOS中,单例有两种实现方式(至少我目前只发现两种)。根据线程安全的实现...

网友评论

      本文标题:iOS单例两种创建方式

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