我有一个描述某些结构的嵌套类型对象:
class Car {
class Electro {
class 2WheelDrive {
}
class 4WheelDrive {
}
}
}
我想将该对象用作签名如下的另一个对象的init函数中的参数:
init(car: Car)
但是,当我尝试使用Car.Electro.4WheelDrive
参数调用此init函数时,出现错误:
”无法将类型“ Car.Electro.4WheelDrive”的值转换为预期值 参数类型“汽车””。
我应该使用哪个初始化函数签名(init(car: Any)
除外)才能使用Car.Electro.4WheelDrive
之类的参数?
答案 0 :(得分:4)
您的代码创建四个类:
这些是不相关的类;他们唯一的共同点是命名空间。 Car.Electro
不是Car
的子类。如果要成为,则需要声明它。
您可能根本不打算将它们嵌套。您可能打算使它们成为子类:
class Car {}
class ElectroCar: Car {}
class TwoWheelDriveElectroCar: ElectroCar {}
class FourWheelDriveElectroCar: ElectroCar {}
如果愿意,您仍然可以嵌套它们:
class Car {
class Electro: Car {
class TwoWheelDrive: Electro {
}
class FourWheelDrive: Electro {
}
}
}
这只是更改他们的姓名,而不是他们的关系。