当超类使用相同的属性时,不能在派生类中使用属​​性不可用

时间:2016-06-02 02:29:49

标签: swift

编译器拒绝以下代码:

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'已被标记为不可用。

我如何将超级和派生类的初始化程序都标记为不可用,因为知道删除覆盖会导致丢失的覆盖错误?

1 个答案:

答案 0 :(得分:1)

我担心你的化身几乎总结了我的答案:你做不到。

你可以在快速进化论坛上谈论它:

https://lists.swift.org/mailman/listinfo/swift-evolution

同时,您可以将B类方法标记为不可用,将A类方法标记为已弃用。