单例初探(使用单例存储app全局公用数据)
来源:互联网 发布:js闭包循环面试题 编辑:程序博客网 时间:2024/06/05 20:21
接触ios后,一直在想用什么方式保存整个app使用的全局变量那。经过思考查找,知道了应该使用单例模式。
单例模式的特点就是“单”,整个系统种只能存在一个实例。本文将使用GCD,创建多线程安全的单例类,用于存放系统的参数。
第一步:任何一个类使用的时候最常用的申方式就是,alloc init。而alloc 方法 最后一定会进入 +(instancetype)allocWithZone:(struct _NSZone *)zone 方法,所以只要重写这个方法就可以达到单例的效果。gcd提供里一种多线程安全的单词调用方法。具体代码如下:
+(instancetype)allocWithZone:(struct _NSZone *)zone{ static GlobalVariables * instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance= [super allocWithZone:zone]; }); return instance;}做完这一步我们可以去看一下,是不是每次申请,或者在异步线程内每次申请都是一个实例。
第二步:提供一个实例访问方法。当然是一个类方法,方法内只要返回此实例即可,代码如下:
+(instancetype)shareGlobalVariables{ return [[self alloc]init];}第三步: 给单例类加入属性存储数据
0 0
- 单例初探(使用单例存储app全局公用数据)
- 初探单例模式
- 单例模式初探
- 单例模式初探
- c++单例模式初探
- 设计模式初探-单例模式
- 设计模式初探-单例模式(Singleton)
- 初探单例模式学习笔记
- Android开发之单例模式初探
- 初探设计模式之单例模式
- 初探Java设计模式-单例模式
- iOS之单例模式初探
- 初探设计模式之单例模式
- iOS之单例模式初探
- javascript设计模式初探--单例模式
- 设计模式初探-单例模式
- SharedPreferences存储 单例模式
- 使用单枚举类型实现单例
- android TextView设置删除线,超链接,颜色和字体等说介绍,androidtextview
- windows下,域名解析,获取适配器信息
- cookie
- Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7)
- Push---极光推送
- 单例初探(使用单例存储app全局公用数据)
- 关于PL/SQL Developer 中文乱码的解决
- Absolute paths & require()
- 获取运行中的TeamViewer的账号和密码(Test on English GUI)
- ExtJs 入门教程二十[数字框 :NumberField]
- java中堆和堆栈的区别
- visio2013安装和破解
- mysql初次使用
- leetcode 14: Longest Common Prefix