Junior — Middle
Care sunt criteriile principale pe care un obiect trebuie să le îndeplinească pentru a fi adăugat corect în colecția Set?
sobes.tech AI
Răspuns de la AI
Pentru a adăuga corect un obiect într-o colecție Set (de exemplu, NSSet în iOS), obiectul trebuie:
-
Să implementeze corect și coerent metodele
-hashși-isEqual:.-hashtrebuie să returneze aceeași valoare pentru obiectele considerate egale.-isEqual:trebuie să determine cu precizie egalitatea obiectelor.
-
Să fie imuabil în câmpurile care participă la calculul hash-ului și comparare, atâta timp cât obiectul se află în Set. Altfel, integritatea colecției va fi compromisă.
De exemplu, dacă creezi o clasă pentru stocare în NSSet, suprascrie aceste metode:
- (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];
}
Aceasta asigură că Set va determina corect unicitatea obiectelor.