ios中单例的写法和目的
来源:互联网 发布:a5源码网 编辑:程序博客网 时间:2024/05/16 07:30
单例目前一般有两种写法,我早期在ios4,5的时候,一般采用如下写法
方法一:
static XxxManager *shared = nil; + (XxxManager *)sharedManager { if (!shared) { shared = [[self allocWithZone:NULL] init]; } return shared; }
方法二:
+ (XxxManager *)sharedManager{ static XxxManager *sharedInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate, ^{ sharedInstance = [[self alloc] init]; }); return sharedInstance;}
对比这两种写法,
第一种比较常规,符合C的习惯,也是曾经苹果的推荐写法。
第二种写法好处是用到了GCD的dispatch_once_t,这东西就是在多线程中用的,所以可以保证线程安全,同时这种方式也能很好的支持了ARC。
不过使用单例的时候需要注意:在单例初始化时,一定不能出现对单例的引用!否者会引起循环调用。
简单说就是不能在单例类的初始化的方法中,自身或者成员变量又对单例的变量或方法进行调用。
具体参考:http://www.cnblogs.com/sunnyxx/archive/2012/11/09/2762861.html
0 0
- ios中单例的写法和目的
- 开题报告的目的和写法
- ios中单例的写法
- ios中单例的写法
- iOS中单例的通用写法
- iOS 数组 和字典的新写法
- ios中setter和getter的写法
- 接地的分类和目的
- 目的和目标的区别
- 友情的目的和作为目的的友情
- ios中单例的两种写法~~~
- ios枚举的写法
- iOS 单利的写法
- iOS 中单例写法
- iOS单例模式和单例的写法
- iOS 单例模式的介绍和写法
- iOS 定义静态常量和宏定义的写法
- HIS系统实施的目的和目标
- Python的unittest自动化测试框架
- QT编程实例1--简单的文本编辑器(下)
- GRASP设计模式及OO设计原则浅谈
- Unity+NGUI打造网络图片异步加载与本地缓存工具类
- UITableViewCell的seleced与deselect 选中 取消选中
- ios中单例的写法和目的
- Android Zip文件解压代码
- LeetCode--Pascal's Triangle II
- Java博客整理—01-14-2015
- 推荐书单(一)
- 【呆子谈管理】:点状思维特点的人应该如何管理?
- Android应用开发相关下载资源
- shader学习之旅-3-从文件读取模型数据和着色器程序
- 最新 Unity3D鼠标滑轮控制物体放大缩小 [