iOS 创建单例的两种方法
2015-08-28 19:52
309 查看
第一种方法
static AccountManager *DefultManager = nil;
+ (AccountManager *)defultManager{
if (!DefultManager)DefultManager = [[self allocWithZone: NULL] init];
return DefultManager;
}
iOS 4之后的另外一种方法
+ (AccountManager *)shareManager
{
static AccountManager *shareAccountManagerInstance = nil;
static dispach_once_t predicate;
dispatch_once(&predicate, ^{
shareAccountManagerInstance = [[self alloc] init];
});
return shareAccountManagerInstance;
}
该方法有以下几种特性:
1. 线程安全
2. 满足静态分析器的要求
3. 兼容ARC
static AccountManager *DefultManager = nil;
+ (AccountManager *)defultManager{
if (!DefultManager)DefultManager = [[self allocWithZone: NULL] init];
return DefultManager;
}
iOS 4之后的另外一种方法
+ (AccountManager *)shareManager
{
static AccountManager *shareAccountManagerInstance = nil;
static dispach_once_t predicate;
dispatch_once(&predicate, ^{
shareAccountManagerInstance = [[self alloc] init];
});
return shareAccountManagerInstance;
}
该方法有以下几种特性:
1. 线程安全
2. 满足静态分析器的要求
3. 兼容ARC
相关文章推荐
- iOS 开发流程笔记
- ios Block解决循环引用和回传值
- Xamarin iOS+MvvmCross TableCell add Button
- Xamarin IOS SearchBar 文本框设置
- iOS 代理 协议
- xamarin ios XibFree LinearLayout
- IOS编程中设置系统默认语言的方法
- iOS多线程实现3-GCD
- iOS学习 - tableViewCell(团购)
- IOS开发隐私权限判断
- ios 开发不同应用间相互跳转
- iOS 设置模拟器经纬度
- itunes 提交问题(一)
- iOS开发 - 通过ssh安装iPhone软件
- Windows8.1无法进入BIOS
- iOS设计模式--迭代器模式
- iOS开发——创建你自己的Framework
- iOS中绘制圆形的函数方法
- iOS中xib设置label等的圆角
- iOS URLWithString返回为空nil的解决方案