ios支持arc的单例模式的编写

原创 2013年12月03日 16:35:08

今天在别人写的关于单例模式的编写,感触挺深,因为关于单例模式的编写向来有很多争议,我觉得以下这个方法很适合我们平时的编程习惯,并且支持arc模式,


+ (MyViewController*)sharedMyViewController
{
    static MyViewController *sharedSVC;
    static dispatch_once_t onceToken;
    //dispatch_once不仅意味着代码仅会被运行一次,而且还是线程安全的,这就意味着你不需要使用诸如@synchronized之类的来防止使用多个线程或者队列时不同步的问题。
    dispatch_once(&onceToken, ^{
        sharedSVC = [[self alloc] init];
    });
    
    return sharedSVC;
}


dispatch_once用于检查该代码块是否已经被调度的谓词(是一个长整型,实际上作为BOOL使用)。它还接收一个希望在应用的生命周期内仅被调度一次的代码块,对于本例就用于shared实例的实例化。

该方法有很多优势:

           1 线程安全
           2 很好满足静态分析器要求
           3 和自动引用计数(ARC)兼容
           4 仅需要少量代码

相关文章推荐

IOS_单例模式抽宏(非ARC)

  • 2015年05月26日 17:13
  • 428B
  • 下载

IOS_单例模式(ARC).

  • 2015年05月26日 17:09
  • 424B
  • 下载

iOS开发多线程篇—单例模式(ARC)整理小料

iOS开发多线程篇—单例模式(ARC) 一、简单说明: 设计模式:多年软件开发,总结出来的一套经验、方法和工具 java中有23种设计模式,在ios中最常用的是单例模式和代理模式...

iOS的ARC/MRC单例模式

1.单例模式 1.1 概念相关 (1)单例模式在程序运行过程,一个类只有一个实例(2)使用场合在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次) 1.2 ARC实现单例 (1)步骤01 在...

IOS单例模式(MRC下和ARC下)

LSSingleInsten.h #import @interface LSSingleInsten : NSObject @property (nonatomic,assign) NSInteg...
  • gwjxl
  • gwjxl
  • 2015年02月11日 14:40
  • 321

iOS开发多线程篇—单例模式(ARC)

iOS开发多线程篇—单例模式(ARC) 2015-05-16 11:45:00cnblogs.com-Running2Snail-点击数:1119 ...

单例模式-ARC

  • 2015年01月05日 10:14
  • 32KB
  • 下载

浅析iOS中单例模式的写法(懒汉式&饿汉式&ARC&非ARC&宏)

浅析iOS中单例模式的写法(懒汉式&饿汉式&ARC&非ARC&宏)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios支持arc的单例模式的编写
举报原因:
原因补充:

(最多只允许输入30个字)