【iOS Tips】002-实现“简单单例模式”的几种方法?
2018-07-16 16:41
399 查看
首先不管哪种写法都要首先声明一个静态单例对象,如下所示:
其次就是创建单例的时机了,常用的有以下几种写法:
一、简单写法(线程不安全)
二、使用dispatch_once(线程安全)
三、在initialize中创建(线程安全)
static GNRSingleModel *instance = nil;
其次就是创建单例的时机了,常用的有以下几种写法:
一、简单写法(线程不安全)
+ (instancetype)sharedInstance{ if (instance==nil) { instance = [[GNRSingleModel alloc]init]; } return instance; }
二、使用dispatch_once(线程安全)
+ (instancetype)sharedInstance{ static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[GNRSingleModel alloc]init]; }); return instance; }
三、在initialize中创建(线程安全)
+ (void)initialize{ if (self == [super class]) { instance = [[GNRSingleModel alloc]init]; } }
相关文章推荐
- IOS实现单例模式的几种实现方法
- IOS实现单例模式的几种实现方法
- Cisco路由器在rommon模式下几种恢复IOS的方法
- IOS几种简单有效的数组排序方法
- iOS设备踢出恢复模式的几种方法
- Java中单例模式的几种正确实现方法
- ios的几种简单有效的数组排序方法
- 单例模式几种实现方法
- IOS几种简单有效的数组排序方法
- 地址方法[ios开发]利用有道翻译API实现简单的翻译功能地址方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- IOS几种简单有效的数组排序方法
- C#工厂模式的几种实现方法及比较
- 单件模式的几种实现方法
- 工厂模式例子(用面向对象的方法实现简单的计算器)
- IOS开发简单登录LoginViewController、注册RegisterViewController、UcenterViewController功能实现方法
- ios几种简单有效的数组排序方法