GCD&单例分析
2015-11-27 本文已影响0人
龙逸星辰
1.单例模式
1.1 概念相关
(1)单例模式
在程序运行过程,一个类只有一个实例
(2)使用场合
在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次)
1.2 ARC实现单例
(1)步骤(重点)
![](https://img.haomeiwen.com/i1197871/a7bd0ee57584fe63.png)
(2)相关代码(重点)
![](https://img.haomeiwen.com/i1197871/b5baee0228450dec.png)
![](https://img.haomeiwen.com/i1197871/6c154daf7078883c.png)
1.3 MRC实现单例
(1)实现步骤
![](https://img.haomeiwen.com/i1197871/d6c4c98739bcb670.png)
![](https://img.haomeiwen.com/i1197871/09918339970772fe.png)
(2)配置MRC环境知识
(3)相关代码
![](https://img.haomeiwen.com/i1197871/fa8bf85194c17393.png)
![](https://img.haomeiwen.com/i1197871/f2a6c431d20322fa.png)
1.4 通用版本
(1)有意思的对话
01问:写一份单例代码在ARC和MRC环境下都适用?答:可以使用条件编译来判断当前项目环境是ARC还是MRC02问:条件编译的代码呢,么么哒?
![](https://img.haomeiwen.com/i1197871/03eafb9c994d4166.png)
03问:在项目里面往往需要实现很多的单例,比如下载、网络请求、音乐播放等等,弱弱的问一句单例可以用继承吗?答:单例是不可以用继承的,如果想一次写就,四处使用,那么推荐亲使用带参数的宏定义啦!
04问:宏定义怎么弄?答:这个嘛~~回头看一眼我的代码咯,亲。
(2)使用带参数的宏完成通用版单例模式代码
01注意条件编译的代码不能包含在宏定义里面
02宏定义的代码只需要写一次就好,之后直接拖到项目中用就OK
03将下面的代码写到一个 .h文件中即可,以后想要定义一个单例对象,直接引用这个 .h文件即可,通过其中的方法创建单例对象
![](https://img.haomeiwen.com/i1197871/1fe330bc64213f9b.png)
![](https://img.haomeiwen.com/i1197871/9ba5dbcd9c8fe326.png)