J'ai un protocole Mappable implémentant une classe et je veux passer le type en paramètre à une fonction et obtenir une instance de cet objet, mais le type peut également être un type primitif.Instanciation rapide à partir du type générique
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
}
}
Ce que j'ai essayé est de créer 2 override getInstance comme ceci:
func getInstance<T>() -> T{}
func getInstance<T : Mappable>() -> T{}
mais pour plusieurs types, il peut être beaucoup de dérogation. Y at-il un moyen de laisser savoir rapidement que T est mappable en première fonction?