ios - 类单例初始化不能自动完成

标签 ios swift initialization singleton

我做了一个单例类如下:

class AccountManager
{
    static let sharedInstance = AccountManager()

    private init(){
        print("init is done if this message shows up")
    }
}

我认为 init 方法会在我启动应用程序后自动执行,而无需先在某个地方调用 AccountManager.sharedInstance,但实际上它不会执行,除非调用AccountManager.sharedInstance 特别是第一个。

这种行为是正常的还是我做错了什么?

最佳答案

静态类型属性是惰性初始化的(并且只有一次),即它在第一次初始化时被初始化 访问,例如如果你打电话

let manager = AccountManager.sharedInstance

AccountManager.sharedInstance.someMethod()

Swift 没有在运行时自动执行代码的机制。

在 Objective-C 中你可以实现一个 + (void)load;类加载到内存时运行的方法,这是不允许的 在 Swift 中。

关于ios - 类单例初始化不能自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42453579/

相关文章:

ios - 为什么 Google Cloud Messaging 通知不适用于 iPhone 生产环境?

ios - 如何在 iOS 中调整自定义键盘的框架?

ios - UIPickerView Swift 上奇怪的自定义背景颜色

ios - AVAudioPlayer- 从声音缓冲区播放

swift - 不使用 Tint 更改 NavigationBar 和系统颜色

swift - 初始化程序委托(delegate)的要点是什么?

Java双重初始化为0

ios - 查看<(空):0x0> does not conform to UITextInput protocol when tapping Return button on keyboard

ios - GLKBaseEffect 未加载纹理(纹理在对象上显示为黑色)

javascript - 定义函数时如何在javascript函数中初始化参数