[SWIFT] Recherche d'une valeur dans un dictionnaire
Bonjour tout le monde,
Je suis en train de m'emmêler les pinceaux avec une histoire de dictionnaire.. et comme c'est vraiment pas mon truc, je m'en remet à vous ^^
J'ai un dictionnaire de type :
struct StructurePourListe : CustomStringConvertible, Hashable {
var id: Int
var value: String
var hashValue : Int {
return self.id.hashValue
}
init(id: Int, value: String) {
self.id = id
self.value = value
}
// Ce qui sera affiché
var description: String {
//return "\(self.id)"+" "+"\(self.value)"
return "\(self.value)"
}
}
Dans mon code, je remplis mon dictionnaire de cette façon :
var arrayOfMyStruct:[StructurePourListe] = []
for (_,DestinataireJson):(String, JSON) in recupJSON["Data","Destinataire"] {
let NomPrenom = DestinataireJson["NomPrenom"].stringValue+" ("+DestinataireJson["Login"].stringValue+")"
let Id = DestinataireJson["Id"].intValue
arrayOfMyStruct.append(StructurePourListe(id: Id, value: NomPrenom))
}
Quand je fais un print de mon dictionnaire, je me retrouve avec :
[Utilisateur1 (Login1), Utilisateur2 (Login2), Utilisateur3 (Login3)]
Plus loin dans mon code, je récupère un utilisateur (j'ai son Id et son NomPrenom (Login))
Comment je peux faire pour vérifier si il est dans mon dictionnaire ou pas ?
J'ai testé plein de trucs et j'ai l'impression de tourner en rond
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Mais tu ne joue pas avec un dictionnaire, tu utilises un array !!!
Pourquoi pas utiliser un vrai dictionnaire ?
Parce que le code est mal foutu et que je ne peux pas trop y toucher sinon ça se répercute partout
En gros, j'ai juste une vérification à faire dans le code, si l'utilisateur existe dans mon arrayOfMyStruct alors je l'ajoute ailleurs, sinon je ne fais rien.
Le truc c'est que j'arrive pas à rechercher si l'utilisateur existe dans le arrayOfMyStruct
T'as une idée de comment faire ?
Non testé :
Mais je pense qu'en faisant du
Equatable
surStructurePourListe
, tu devrais pouvoir faire:En rajoutant:
Ton code est bien compliqué. Voici un exemple simplifié d'utilisation d'un dictionnaire en Swift :
EDIT : Le nounours a raison, ce n'est pas un dictionnaire dans ton code, mais un tableau. Tu te compliques la vie pour rien. C'est super facile d'utiliser un VRAI dictionnaire en Swift ..
@Larme Voila, c'est ce que je cherchais avec "contains" mais j'avais pas pigé qu'il fallait mettre un type "StructurePourListe" dedans.. je cherchais avec un string
La structure était déjà "Equatable" .. au moins un truc de bien fait ^^
@Draken Ouai c'est carrément plus simple mais c'est un projet dont j'ai repris le code et si j'ai le malheur de changer la façon dont il gère ça, ça va impliqué que je refasse tout son contrôleur, avec tout les tests qui vont avec.. autant te dire que j'ai pas le temps pour ça ^^
Mais ton exemple est clairement plus simple que le code de merde du projet, c'est clair