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