iOS开发之单例模式
来源:互联网 发布:linux 文件夹权限 编辑:程序博客网 时间:2024/05/21 11:32
在开发中时常会用到单例设计模式,目的就是为了在程序的整个生命周期内,只会创建一个类的实例对象,而且只要程序不被杀死,该实例对象就不会被释放。
创建单例的方法有两种分别是;
1,互斥锁方式创建
static id _instance;+ (instancetype)allocWithZone:(struct _NSZone *)zone{@synchronized(self) {if (_instance == nil) {_instance = [super allocWithZone:zone];}}return _instance;}+ (instancetype)sharedInstance{@synchronized(self) {if (_instance == nil) {_instance = [[self alloc] init];}}return _instance;}- (id)copyWithZone:(NSZone *)zone{return _instance;}
2.GCD方式创建单例
static id _instance;+ (instancetype)allocWithZone:(struct _NSZone *)zone{static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{_instance = [super allocWithZone:zone];});return _instance;}+ (instancetype)sharedInstance{static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{_instance = [[self alloc] init];});return _instance;}- (id)copyWithZone:(NSZone *)zone{return _instance;}- (id)mutableCopyWithZone:(NSZone *)zone {return _instance;}这里值得注意的是我们要重写allocWithZone方法来确保其他开发人员调用alloc:init方法是时候生成实例的唯一性,同样重写copyWithZone:和mutableCopyWithZone也是保证实例的唯一性!
0 0
- iOS开发模式之单例模式
- IOS开发之----单例模式详解
- IOS开发之----单例模式详解
- IOS开发之----单例设计模式
- iOS开发之单例模式
- iOS开发之单例模式
- iOS开发之单例模式
- iOS 开发之单例模式
- iOS开发之单例模式
- iOS开发之单例模式
- IOS开发 单例模式
- iOS开发-单例模式
- ios开发 单例模式
- iOS开发-单例模式
- IOS开发基础之──单例模式
- IOS开发基础之──单例模式
- iOS开发之单l例模式(Singleton)
- iOS开发之单例模式的写法
- Android 高德地图——地图展示
- 关于首屏性能优化的总结【原创】
- 开启数据智慧,阿里云大数据团队调研高新区
- 使用python编写web服务器
- 数据库恢复删除的数据
- iOS开发之单例模式
- C# Excel操作类ExcelHelper
- Api 编程 远程文件下载
- iOS 获取label上点击位置的字符位置
- MySql实现分页查询的SQL,mysql实现分页查询的sql语句
- PTC联手阿里云共同提高中国工业4.0认可度
- android实现弹窗和自定义弹窗
- Gson的使用讲解
- springMVC执行过程