首页 > 解决方案 > 单例类中的可失败初始化与 swift 中的私有初始化程序

问题描述

我有一个带有共享单例实例的类。我的班级有一个可以失败的私有初始化程序。当我运行我的代码时,我的代码崩溃了

Thread 1: EXC_BREAKPOINT (code=1, subcode=0x105289b9c)

我做错了什么?

class MyClass {
    static var shared = MyClass()

    private var a: Int

    private init?() {
        guard someCondition else {
            return nil
        }

        self.a = 0
        self.myFunction()
    }

    private func myFunction() {
        // some code
    }
}

标签: iosswiftstaticsingleton

解决方案


在这种情况下,问题是循环访问,myFunction因为我正在创建一个调用 的对象,MyClass.shared?.someFunction()这就是崩溃的原因。


推荐阅读