我有一个单独的类MyClass用于管理第三方sdk.在单身内部我有init方法.
我的问题是:每当我从像MyClass.shared.mymethod()这样的单例调用某些东西时调用init方法,或者为了调用init我必须调用var instance = MyClass()吗?
只有在第一次调用MyClass.shared时才会调用init
此时,MyClass的实例保存在共享静态常量中.
例
让我们考虑一下这个Singleton类
final class Singleton { static let shared = Singleton() private init() { print("Singleton initialized") } var count = 0 }
现在让我们看一下控制台的输出
如您所见,Singleton初始化字符串仅打印一次.这意味着init只被调用一次.
Note: Of course I assumed the implementation of your Singleton class is correct.