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

今天在别人写的关于单例模式的编写,感触挺深,因为关于单例模式的编写向来有很多争议,我觉得以下这个方法很适合我们平时的编程习惯,并且支持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日 424B 下载

单例模式-ARC

2015年01月05日 32KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭