Objective-C使用GCD 中的dispatch_once_t 可以保证里面的代码只被调用一次,以此保证单例在线程上的安全。
但是在Swift 中由于废弃了原有的Dispatch once方法,因此无法使用once 进行单例的创建。
我们可以使用struct 存储类型变量,并且使用let保证线程安全的方式
(1)方案1
class Manager {
class var sharedManager: Manager {
struct Static {
static let sharedInstance: Manager = Manager()
}
return Static.sharedInstance
}
}
(2)方案2文章来源:https://www.toymoban.com/news/detail-694890.html
class Manager {
class var sharedManager: Manager {
return sharedInstance
}
}
private let sharedInstance = Manager()
(3)方案3文章来源地址https://www.toymoban.com/news/detail-694890.html
class Manager {
static let sharedInstance = Manager()
}
到了这里,关于Swift创建单例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!