IOS创建单例的两种方法

1.0  苹果官方写法: 

1 static AccountManager *DefaultManager = nil;  
2    
3 + (AccountManager *)defaultManager {  
4     if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init];  
5     return DefaultManager;  
6 } 

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

1 + (AccountManager *)sharedManager  
2 {  
3         static AccountManager *sharedAccountManagerInstance = nil;  
4         static dispatch_once_t predicate;  
5         dispatch_once(&predicate, ^{  
6                 sharedAccountManagerInstance = [[self alloc] init];   
7         });  
8     return sharedAccountManagerInstance;  
9 }  

 

 

posted @ 2016-01-08 11:23  御剑青冥  阅读(199)  评论(0编辑  收藏  举报