Swift中的单例模式
发布时间:2020-12-14 01:37:01 所属栏目:百科 来源:网络整理
导读:三种方法实现单例模式,线程安全 1. 全局变量 2. 结构 3. dispatch_once 1.全局变量: 这里使用了全局变量而非类变量,是因为不支持类变量 private let _SingletonSharedInstance = Singleton() class Singleton { class var sharedInstance : Singleton { re
三种方法实现单例模式,线程安全 1.全局变量:这里使用了全局变量而非类变量,是因为不支持类变量 private let _SingletonSharedInstance = Singleton()
class Singleton {
class var sharedInstance : Singleton {
return _SingletonSharedInstance
}
}
2.结构:与类不同,结构可以定义静态变量,通过使用此方法,将静态变量升级为类变量(在支持类变量之前,推荐此方法) class Singleton {
class var sharedInstance : Singleton {
struct Static {
static let instance : Singleton = Singleton()
}
return Static.instance
}
}
3.dispatch_once:class Singleton {
class var sharedInstance : Singleton {
struct Static {
static var onceToken : dispatch_once_t = 0
static var instance : Singleton? = nil
}
dispatch_once(&Static.onceToken) {
Static.instance = Singleton()
}
return Static.instance!
}
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |