6
我正在尝试执行以下操作。使用swift铸造具有泛型参数的struct
protocol Vehicle {
}
class Car : Vehicle {
}
class VehicleContainer<V: Vehicle> {
}
let carContainer = VehicleContainer<Car>()
let vehicleContainer = carContainer as VehicleContainer<Vehicle>
,但我得到的最后一行的编译错误:
'Car' is not identical to 'Vehicle'
对此有什么解决办法?
另外我相信这种类型的铸造应该是可能的,因为我可以用基于泛型构建的数组来完成。以下作品:
let carArray = Array<Car>()
let vehicleArray = carArray as Array<Vehicle>
不知道这是否与它有任何关系,但'Array'是一个值类型。试着用'struct'来重新构造你的上面的层次结构,看看你是否仍然有同样的错误。 – martineno 2014-09-19 08:13:00
是的,我试过已经用VehicleContainer作为Struct,它给出了相同的错误 – hoddez 2014-09-20 09:55:31
你有没有想过这个? – joslinm 2015-02-13 16:09:06