iOS开发47-iOS 单例的学习和使用
2015-11-25 19:55
381 查看
iOS开发47-iOS 单例的学习和使用
单例是一种类,该类只能实例化一个对象。Single.h
#import <Foundation/Foundation.h> @interface Single : NSObject @property(nonatomic,copy)NSString * aString; +(instancetype)shareSingle; @end
Single.m
#import "Single.h" static Single *s =nil; @implementation Single +(instancetype)shareSingle{ //第一种写法 /* if(s == nil) { s = [[Single alloc]init]; } */ //第二种写法(推荐使用,线程安全) static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ if(s == nil) { s = [[Single alloc]init]; } }); return s; } @end
dispatch_once不仅意味着代码仅会被运行一次,而且还是线程安全的,这就意味着不需要使用诸如@synchronized之类的来防止使用多个线程或者队列时不同步的问题。
著作权声明:本文由http://my.csdn.net/Nathan1987_原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢
相关文章推荐
- iOS开发笔记之三十一——日历NSCaledar使用过程中遇到的一个苹果系统bug
- ios开发——日常之iOS通知传值的使用
- ios 9.1以后 添加libz.dylib 方法
- iOS库--.a与.framework
- iOS开发编辑自定义代码块Code Snippet
- 漫谈iOS Crash收集框架
- 自动化运维之系统监控Nagios(一)安装部署
- iOS —— FFmpeg移植
- iOS---修改Xcode7建立的工程名称
- 图形变换之使用矩阵变换
- iOS报错日志- collectionview
- iOS开发笔记-cell里点击按钮展开收起-动态改变cell行高
- iOS 常用的函数
- iOS 常见设计模式
- iOS 获取设备信息
- xcode版本升级为7.1后无法找到libxml2.dylib
- iOS视图生命周期
- iOS警告框和操作表
- iOS输入框随键盘滑动的另类实现
- IOS(1) 点击空白区域隐藏(关闭)键盘