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-创建单例的三种方式
最新推荐文章于 2024-11-27 20:14:45 发布
本文介绍了如何在Swift中实现单例模式,通过三种不同的方法创建单例实例:使用GCD、结构体及全局变量。每种方法都有其特点,文章通过具体代码示例展示了这些方法的实现过程,并通过验证确保单例的正确性。
208

被折叠的 条评论
为什么被折叠?



