J'ai une fonction qui prend une valeur, que j'envoie ensuite à NSUserDefaults pour la stocker dans sa liste de propriétés. Comment puis-je configurer des contraintes génériques pour que la valeur ne puisse être qu'un des types possibles acceptés pour la liste de propriétés?Comment puis-je filtrer ou avoir plusieurs options pour une fonction générique?
Je pensais quelque chose comme:
func store<T>(value: T, key: String) -> Bool where T:NSString OR T:NSData OR T:Etc{
// send key, value to NSUserDefaults
}
qui bien sûr ne fonctionne pas.
En supposant que votre retour Bool indique la réussite/échec, vous ne pourriez pas utiliser simplement un garde/autre déclaration pour tester la type? – dfd
Je voudrais une erreur de compilation si la fonction est utilisée avec le mauvais type – Steals