【问题标题】:Swift Initializer of a Class [duplicate]类的 Swift 初始化程序 [重复]
【发布时间】:2020-08-07 20:06:20
【问题描述】:

几天前我开始学习 swift,我来自 java/c++ 背景。 然而,这段代码有一个我似乎无法修复的错误。

class Student
{
    var number:Int
    var name:String
    var course:String

    init(_ name:String,_ number:Int, _ course:String)
    {
        self.number = number
        self.name = name
        self.course = course
    }

    func write()
    {
        print("Name:",self.name)
        print("Number:",self.number)
        print("Course:",self.course)
    }
}

class ExchangeStudent:Student
{
    var country:String

   init(_ name:String,_ number:Int, _ course:String, _country:String)
    {
        super.init(name,number,course)
        self.country = country
    }

}

但是我得到以下错误:

property 'self.country' not initialized at super.init call

我真的不明白我该如何解决它

【问题讨论】:

  • 请使用正确的 Swift 代码风格,这段代码伤了我的眼睛 :(

标签: swift class


【解决方案1】:

super.init 的调用需要您已初始化子类添加的所有额外属性之后进行。

class ExchangeStudent: Student {
    var country:String

    init(_ name:String,_ number:Int, _ course:String, _ country:String) {
        self.country = country
        super.init(name,number,course)
    }

}

【讨论】:

  • ahhhh,这就是我所缺少的。非常感谢!
猜你喜欢
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多