iOS中创建单例的两种方式
2016-05-24 19:08
906 查看
刚刚开始做iOS开发的时候,不知道怎么创建单例,在网上搜的也大多数都不太全,所以总结了一下创建单例的两种方式
首先在.h文件中声明类方法
然后在.m文件中实现它,实现的方法有两种
第一种,在创建一个对象时先判断在程序中有没有创建过这个对象
第二种,直接利用系统提供的多线程技术dispatch_once
首先在.h文件中声明类方法
+(instancetype)sharedUtils;
然后在.m文件中实现它,实现的方法有两种
第一种,在创建一个对象时先判断在程序中有没有创建过这个对象
static PublicUtils *DefaultManager = nil; +(instancetype)sharedUtils { if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init]; return DefaultManager; }
第二种,直接利用系统提供的多线程技术dispatch_once
+(instancetype)sharedUtils { static PublicUtils* _sharedUtils = nil; static dispatch_once_t _once; dispatch_once(&_once, ^{ _sharedUtils = [[self alloc] init]; }); return _sharedUtils; }
dispatch_once(&_once, ^{ }); 这个多线程的作用看名字估计就猜的差不多了:对于某个任务执行且只执行一次。 欢迎大家提出建议和意见,大家一起学习,一起进步。。
相关文章推荐
- iOS屏幕强制旋转
- iOS开发中,实现两个控制器之间数据的双向传递
- -ObjC, -all_load, -force_load
- iOS BSD Socket UDP编程
- iOS解决两个静态库的冲突
- iOS 打包流程
- 解析iOS崩溃日志(crash Log)
- iOS中__block 关键字的底层实现原理
- 在iOS应用中使用字体图标及制作字体库
- iOS中的字符串扫描类NSScanner
- iOS获取存储空间大小(总共/剩余)
- ios学习笔记之九--图片移动代码的优化
- 玩转Xcode之修改系统生成的注释模板
- iOS Socket理论知识
- IOS第三方库 cocoa Pods
- iOS不得姐项目--pop框架的初次使用
- iOS应用崩溃日志分析
- iOS 代码规范
- iOS 相机(需真机测试)
- iOS截图