单例类的创建

1.+ 静态方法,一般用share

2.创建static 类对象

3.重写mutableCopy,copy,allocWithZone(类方法),init四个方法

if(..==nil){

创建一个单例很多办法,苹果官方文档中的写法:

static AccountManager *DefaultManager = nil;

+ (AccountManager *)defaultManager {

if(!DefaultManager) 

DefaultManager = [[self allocWithZone:NULL] init];

return DefaultManager;

}

在iOS4之后有了另外一种写法:

+ (AccountManager *)sharedManager

{

static AccountManager *sharedAccountManagerInstance = nil;

static dispatch_once_t predicate;

dispatch_once(&predicate, ^{

sharedAccountManagerInstance = [[self alloc] init];

});

return sharedAccountManagerInstance;

}

该写法来自objcolumnist,文中提到,该写法具有以下几个特性:

1. 线程安全。

2. 满足静态分析器的要求。

3. 兼容了ARC

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容