编译器拒绝以下代码:
class A : NSObject {
@available(*, unavailable, message="init is not a supported initializer for this class.")
override init () {
}
}
class B : A {
@available(*, unavailable, message="init is not a supported initializer for this class.")
override init () {
}
}
出现以下错误:
无法覆盖' init'已被标记为不可用。
我如何将超级和派生类的初始化程序都标记为不可用,因为知道删除覆盖会导致丢失的覆盖错误?
答案 0 :(得分:1)
我担心你的化身几乎总结了我的答案:你做不到。
你可以在快速进化论坛上谈论它:
https://lists.swift.org/mailman/listinfo/swift-evolution
同时,您可以将B类方法标记为不可用,将A类方法标记为已弃用。