Junior — Middle
Quels sont les critères principaux qu'un objet doit remplir pour être correctement ajouté à la collection Set?
sobes.tech IA
Réponse de l'IA
Pour ajouter correctement un objet à une collection Set (par exemple, NSSet en iOS), l'objet doit :
-
Implémenter correctement et de manière cohérente les méthodes
-hashet-isEqual:.-hashdoit retourner la même valeur pour les objets considérés comme égaux.-isEqual:doit définir précisément l'égalité des objets.
-
Être immuable sur les champs qui participent au calcul du hash et à la comparaison, tant que l'objet est dans le Set. Sinon, l'intégrité de la collection sera compromise.
Par exemple, si vous créez une classe pour la stocker dans NSSet, redéfinissez ces méthodes :
- (NSUInteger)hash {
return self.identifier.hash;
}
- (BOOL)isEqual:(id)object {
if (self == object) return YES;
if (![object isKindOfClass:[MyClass class]]) return NO;
return [self.identifier isEqual:((MyClass *)object).identifier];
}
Cela garantit que le Set identifiera correctement l'unicité des objets.