单例 class 中的可失败初始化与 swift 中的私有初始化器

failable init in singleton class with private initializer in swift

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

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
    }
}

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