【问题标题】:Can not use attribute unavailable in derived class when superclass uses the same当超类使用相同时,不能使用派生类中不可用的属性
【发布时间】:2016-06-02 02:29:49
【问题描述】:

编译器拒绝以下代码:

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”。

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

【问题讨论】:

  • 目前,我遇到了一个类似的问题,我想模拟具有“不可用”初始化程序的对象。如果您对此主题有更多了解,我将不胜感激。

标签: swift


【解决方案1】:

恐怕你的头像几乎概括了我的回答:你不能。

你可以在 swift Evolution 论坛上讨论:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 2016-12-25
    相关资源
    最近更新 更多