我有一个单例类 MyClass
用于与第三方 sdk 的管理工作。在单例中,我有 init
方法。
我的问题是:每次我从像 MyClass.shared.mymethod()
这样的单例中调用某些东西时,是否调用了 init
方法,或者为了调用 init 我必须调用var instance = MyClass()
?
最佳答案
init
仅在您第一次调用 MyClass.shared
时被调用
此时 MyClass
的实例保存在 shared
静态常量中。
例子
让我们考虑这个单例类
final class Singleton {
static let shared = Singleton()
private init() {
print("Singleton initialized")
}
var count = 0
}
现在让我们看看控制台的输出
如您所见,Singleton initialized
字符串仅打印一次。这意味着 init 只被调用一次。
Note: Of course I assumed the implementation of your Singleton class is correct.
关于Swift - 在单例类中初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40438080/