Junior — Middle
Quali sono i criteri principali che un oggetto deve soddisfare per essere aggiunto correttamente alla collezione Set?
sobes.tech AI
Risposta dell'AI
Per aggiungere correttamente un oggetto a una collezione Set (ad esempio, NSSet in iOS), l'oggetto deve:
-
Implementare correttamente e in modo coerente i metodi
-hashe-isEqual:.-hashdeve restituire lo stesso valore per oggetti considerati uguali.-isEqual:deve determinare con precisione l'uguaglianza degli oggetti.
-
Essere immutabile nei campi che partecipano al calcolo dell'hash e al confronto, mentre l'oggetto si trova nel Set. Altrimenti, si compromette l'integrità della collezione.
Ad esempio, se crei una classe per conservarla in NSSet, sovrascrivi questi metodi:
- (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];
}
Questo garantisce che Set determinerà correttamente l'unicità degli oggetti.