IOS单例的两种实现方式
2015-05-29 15:44
330 查看
单例模式算是开发中比较常见的一种模式了。在iOS中,单例有两种实现方式(至少我目前只发现两种)。
根据线程安全的实现来区分,一种是使用@synchronized ,另一种是使用GCD的dispatch_once函数。
1.@synchronized 实现
2.GCD的dispatch_once
根据线程安全的实现来区分,一种是使用@synchronized ,另一种是使用GCD的dispatch_once函数。
1.@synchronized 实现
static InstanceClass *instance; + (InstanceClass *)defaultInstance{ @synchronized (self){ if (instance == nil) { instance = [[InstanceClass alloc] init]; } } return instance; }
2.GCD的dispatch_once
static InstanceClass *instance; + (InstanceClass *)defaultInstance{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[InstanceClass alloc] init]; }); return instance;}
相关文章推荐
- 个人IOS技能树
- iOS自定义转场动画的实现
- iOS定时器
- 三步教你iOS导入.ttf字体文件
- ios GCD
- IOS 开发学习29 Socket框架 AsynSocket的使用
- iOS - TableViewCell分割线 --By吴帮雷
- IOS 音频录制与播放简单演示
- ios TableView cell的布局
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- iOS之文件读写
- xcode6下没有模拟器选项,只能选择iOS Device选项的问题解决办法
- iOS多线程编程之NSThread的使用
- ios7 ios8 cell中下划线偏移(separator Insets)处理方法
- ios7 tableview scrollsToTop 不执行处理方法
- ios7 indexPathForCell 的坑(真是一个大大的坑)
- IOS开发中的几种设计模式介绍
- FFmpeg在iOS上完美编译
- iOS webView中调用JS与JS注入
- iOS7 edgesForExtendedLayout