【问题标题】:Swift: creating initializer generates this error: " 'super' members cannot be referenced in a root class"Swift:创建初始化程序会生成此错误:“'super' members cannot be referenced in a root class”
【发布时间】:2019-12-23 19:16:46
【问题描述】:

我正在实现一个辅助类,例如:

class Helper {

    var myStr: String?

    init?(myStr:String) {
        super.init()
        self.myStr = myStr
    }
}

在这一行 super.init() 我收到此错误“'super' members cannot be referenced in a root class”。

你们中有人知道我为什么会收到这个错误吗?或者是否有办法在没有此错误的情况下创建 init?

非常感谢您的帮助。

【问题讨论】:

  • 你认为super.init() 在你的代码中做了什么?顺便说一句,在 Swift 这样的语言中,辅助类通常是个坏主意。你有扩展,你不需要助手。

标签: swift


【解决方案1】:

这是因为这个类没有超类。它不继承任何东西,因此它是一个根类。对super.init() 的调用是为了调用超类的初始化程序,以确保继承的功能按预期可用,但与此处无关。


声明从另一个类(超类)继承的子类如下所示:

class Subclass: Superclass {
    // Code etc...
}

【讨论】:

    猜你喜欢
    • 2014-07-22
    • 2022-09-25
    • 1970-01-01
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    相关资源
    最近更新 更多