class NetWork {
var value:Double = 0
/**
使用GCD创建单例
- returns: 返回NetWork单例
*/
class func shareInstance() -> NetWork {
struct once{
static var onceToken:dispatch_once_t = 0
static var g_Instance:NetWork! = nil
}
dispatch_once(&once.onceToken) {
once.g_Instance = NetWork()
}
return once.g_Instance
}
/**
使用结构体创建单例
- returns: 返回NetWork单例
*/
class func shareInstance2() -> NetWork {
struct single{
static var g_Instance2 = NetWork()
}
return single.g_Instance2
}
/// 使用全局变量创建单例
static let shareInstance3 = NetWork()
private init(){}
}
//验证
<span style="white-space:pre"> </span>let net1 = NetWork.shareInstance()
net1.value = 100
let net2 = NetWork.shareInstance()
print(net2.value)
let net11 = NetWork.shareInstance2()
net11.value = 200
let net22 = NetWork.shareInstance2()
print(net22.value)
let net111 = NetWork.shareInstance3
net111.value = 300
let net222 = NetWork.shareInstance3
print(net222.value)
Swift-创建单例的三种方式
最新推荐文章于 2023-08-30 11:23:39 发布