两种单例模式的写法_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 两种单例模式的写法

两种单例模式的写法

 2017/6/8 5:32:11  菁欣  程序员俱乐部  我要评论(0)
  • 摘要:iOS的单例模式有两种官方写法,如下:(1)不使用GCD#import"ServiceManager.h"staticServiceManager*defaultManager;@implementationServiceManager+(ServiceManager*)defaultManager{if(!defaultManager)defaultManager=[[selfallocWithZone:NULL]init];returndefaultManager;}@end(2
  • 标签:模式 单例模式

iOS单例模式有两种官方写法,如下:

(1)不使用GCD

#import "ServiceManager.h"
static ServiceManager *defaultManager;
@implementation ServiceManager
+(ServiceManager *)defaultManager{
    if(!defaultManager)
        defaultManager=[[self allocWithZone:NULL] init];
    return  defaultManager;
}
@end

(2)使用GCD

#import "ServiceManager.h"
@implementation ServiceManager
+(ServiceManager *)sharedManager{
    static dispatch_once_t predicate;
    static ServiceManager * sharedManager;
    dispatch_once(&predicate, ^{
        sharedManager=[[ServiceManager alloc] init];
    });
    return sharedManager;
}
@end

 dispatch_once这个函数,class="s1">它可以保证整个应用程序生命周期中某段代码只被执行一次!

发表评论
用户名: 匿名