让 Swift 的 init()函数无法调用

单例

class Singleton {
  static let shared = Singleton()
  private init() {

  }
}

我们通常使用的单例如以上代码所示

但是如果我们想声明一个只包含 static 和 class 函数的 swift class, 这时候我们可能希望连自己都无法调用自己的 init 函数

关闭 init 函数的实现

关闭 init


class MyClass {
    @available(*, unavailable, message: "do not call my init()")
    init() {
        fatalError("This initializer is unavailable.")
    }

}

MyClass() //error: do not call my init()