序号 | 录入时间 | 录入人 | 备注 |
---|---|---|---|
1 | 2015-03-02 | Alfred Jiang | - |
2 | 2015-12-23 | Alfred Jiang | - |
设计模式 - 单例模式
设计模式 \ 单例 \ GCD \ dispatch_once \ 设计模式
- 单例场景,如某个全局使用的管理类
(无)
- Swift 解决方案
class var sharedInstance : SettingManager {
struct Static {
static var onceToken : dispatch_once_t = 0
static var instance : SettingManager? = nil
}
dispatch_once(&Static.onceToken) {
Static.instance = SettingManager()
}
return Static.instance!
}
- Objective-C 解决方案
+(DBManager *)sharedManager
{
static DBManager *sharedManager;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedManager = [[DBManager alloc] init];
});
return sharedManager;
}
(无)