前端之家收集整理的这篇文章主要介绍了
对比Swift和Objective_C中单例的写法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Objective_C:
+ (instancetype)shareNetWorkTools;
+ (instancetype)shareNetWorkTools
{
static id instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken,^{
instance = [[self alloc] init];
});
return instance;
}
Swift:
传统写法
// 在Swift中,类方法中是不允许定义静态变量的
static var once_t: dispatch_once_t = 0
static var instance: NetWorkTools?
// 用于获取单例对象的类方法
class func shareNetWorkTools() -> NetWorkTools{
dispatch_once(&once_t) { () -> Void in
instance = NetWorkTools()
}
return instance!
}
简单写法
//Swift中的let是线程安全的,用到时才会创建
static let instance: NetWorkTools = NetWorkTools()
class func shareNetWorkTools() -> NetWorkTools { return instance }