单例 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()
的对象,这就是崩溃的原因。
我有一个 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()
的对象,这就是崩溃的原因。