說我有一個協議:斯威夫特dynamicType不具有通用功能的工作
protocol VehicleModel {...}
它是由許多不同的結構來實現。 (例如CarModel,TruckModel等) 我有一個通用的方法來獲取車輛的'模型標識符'。
func modelIdentifierForVehicle<V: VehicleModel>(vehicleType: V.Type) -> String {
return "\(vehicleType)"
}
如果我調用modelIdentifierForVehicle(CarModel.self),這將返回「Car」就好。但是,如果我有VehicleModel的多態集合,並且我嘗試在它們中的每一個上調用modelIdentifierForVehicle(model.dynamicType),Xcode會說「不能用類型參數列表(VehicleModel.Type)調用'modelIdentifierForVehicle'」爲什麼會這樣?我該如何解決它?
您可以發佈'VehicleModel'和'modelIdentifierForVehicle'內相關的代碼? – ABakerSmith
@ABakerSmith當然我更新了這篇文章。基本上,它爲車型提供了一個獨特的關鍵,因爲類型本身不是哈希。 – AttilaTheFun