【问题标题】:"Class has no initializers" error in SwiftSwift 中的“类没有初始化程序”错误
【发布时间】:2017-01-15 19:31:21
【问题描述】:
class Car {

let numWheels: Int

    init(numWheels: Int) {
        self.numWheels = numWheels
    }//end constructor
}//end class


class FastCar: Car {
    let topSpeed: Int
}//end class

为什么我会收到一条错误消息,提示“'FastCar' 类没有初始化程序”?我是 swift 世界的初学者,我觉得我只是犯了一个简单的错误,但我重复了很多次,我决定来这里。

【问题讨论】:

  • 类在实例化时必须完全初始化。您需要为 FastCar 提供一个初始化程序或为 topSpeed 提供一个值。您还需要初始化 numWheels。

标签: swift


【解决方案1】:

因为您的 FastCar 类有一个“let”变量,所以它需要有一个构造函数或被赋予一个值。

class FastCar: Car {
    let topSpeed: Int = 4
}

class FastCar: Car {
    let topSpeed: Int
    init(topSpeed: Int) {
        self.topSpeed = topSpeed
        super.init(numWheels: 4) // numWheels provided by init?
    }
}

【讨论】:

    最近更新 更多