oc单例设计模式
2015-06-11 23:17
239 查看
/**DataTool.h工具类*/ #import <Foundation/Foundation.h> @interface DataTool : NSObject + (instancetype)sharedDataTool; @end /**DataTool.m文件*/ #import "DataTool.h" @implementation DataTool // 用来保存唯一的单例对象 static id _instace; + (id)allocWithZone:(struct _NSZone *)zone { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _instace = [super allocWithZone:zone]; }); return _instace; } + (instancetype)sharedDataTool { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ _instace = [[self alloc] init]; }); return _instace; } - (id)copyWithZone:(NSZone *)zone { return _instace; } @end /**控制器*/ - (void)viewDidLoad { [super viewDidLoad]; DataTool *tool1 = [DataTool sharedDataTool]; DataTool *tool2 = [DataTool sharedDataTool]; DataTool *tool3 = [[DataTool alloc] init]; DataTool *tool4 = [[DataTool alloc] init]; NSLog(@"%@ %@ %@ %@", tool1, tool2, tool3, tool4); }
相关文章推荐
- 事务的特点和隔离级别
- 基于Corosync+Pacemaker+DRBD实现MySQL高可用集群
- opencv & qt study-(4)- 图像的载入,显示,及写入到图像文件
- java设计模式(七)---代理模式
- win7 安装express
- 第4次实验
- CentOS 挂载光盘
- activeMq从0开始
- x86寄存器和栈帧
- P124.46
- jQuery 获取屏幕高度、宽度
- Android 广播机制
- Android 删除SD卡一个指定文件夹和其下的所有文件
- 第4次实验
- JavaScript实现级联下拉框
- return与exit的区别是什么?
- 几种分割字符串实现方法的比较
- java 实验四
- JavaScript - Base64 编码解码
- Trie (prefix tree) 实现 (C++)