Swift-创建单例的三种方式

    xiaoxiao2023-03-25  5

    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)
    转载请注明原文地址: https://ju.6miu.com/read-1203779.html
    最新回复(0)