/ / Swift: Comment puis-je vérifier si un objet est dans un tableau? - tableaux, swift, objet, trouver

Swift: Comment puis-je vérifier si un objet est dans un tableau? - tableaux, swift, objet, trouver

Dans Swift, si je veux vérifier si un objet (un objet plus complexe qu'une chaîne existe) dans un tableau, comment puis-je le faire? Les réponses trouvées sur des pages comme celle-ci (Comment vérifier si un élément est dans un tableau) ne semble pas fonctionner dans mon cas.

Par exemple, si j'avais une classe d'objet de chiens,où chaque chien a plusieurs propriétés (poids, couleur, race, etc.) ... et j'ai créé plusieurs instances de cette classe et les ai ajoutées à un tableau unique ... dans ce tableau?

if singleDogInstance is in arrayOfDogs {
//do something
}

Réponses:

1 pour la réponse № 1

Vous pouvez utiliser le contains fonction de la bibliothèque Swift tant que les éléments contenus dans le tableau sont conformes à la Equitable protocole, qui nécessite essentiellement que vous créez un global == opération qui compare deux instances de votre classe.

struct Dog: Equatable {
let name: String
}

func ==( lhs: Dog, rhs: Dog ) -> Bool {
return lhs.name == rhs.name
}

let arrayOfDogs = [ Dog( name:"Panzer" ), Dog( name:"Bentley" ), Dog( name:"Ewok" ) ]
let singleDogInstance = arrayOfDogs[0]
print( contains( arrayOfDogs, singleDogInstance ) ) // True

let someOtherDog = Dog( name:"Oliver" )
print( contains( arrayOfDogs, singleDogInstance ) ) // False

Et bien sûr, dans Swift 2.0, le contains la fonction n'est plus globale mais fait partie de Array:

arrayOfDogs.contains( singleDogInstance )