答案 0 :(得分:0)
是的,它是单例模式。像UserDefaults.standard
,NotificationCenter.default
,FileManager.default
,…一样迅速。例如,URLSession.shared
在苹果docs中的定义为:
共享的单例会话对象。
单例模式可确保仅创建该类的一个实例。该类在第一次请求时会延迟创建其唯一实例,然后确保无法创建其他实例。
以下是一些示例代码:
class MyClass {
static let shared = MyClass()
//Make the initializer private
private init(){}
//Here is a sample method
func doSomething() {
print("Doing something")
}
}
进行初始化程序可避免创建许多实例的可能性,因此以下行将产生错误:
let instance = MyClass() //MyClass initializer is inaccessible due to private protection level
要访问单例,请使用MyClass.shared
:
let instance = MyClass.shared
instance.doSomething() //Prints: Doing something