1
我有一個類實現Mappable協議,我想將類型作爲參數傳遞給函數並獲取該對象的實例,但該類型也可能是原始類型。從泛型類型的Swift實例化
class MyMappable : Mappable {
required init?(map: Map) {
print("i am custom mappable")
}
}
func getInstance<T>() -> T{
if T.self == Int.self {
return 10 as T
}
if T.self is Mappable.self {
return T(Json : [:]) //this is the problem, T is not Mappable
}
}
我想的是創建這樣的2佔優的getInstance:
func getInstance<T>() -> T{}
func getInstance<T : Mappable>() -> T{}
但更多類型的它可以大量替代的。 有沒有辦法讓swift知道T在第一個函數中是可映射的?