Junior — Middle
Wat zijn de belangrijkste criteria waaraan een object moet voldoen om correct aan de Set-collectie te worden toegevoegd?
sobes.tech AI
Antwoord van AI
Om een object correct toe te voegen aan een Set-collectie (bijvoorbeeld NSSet in iOS), moet het object:
-
Correct en consistent de methoden
-hashen-isEqual:implementeren.-hashmoet hetzelfde waarde teruggeven voor objecten die als gelijk worden beschouwd.-isEqual:moet nauwkeurig de gelijkheid van objecten bepalen.
-
Onveranderlijk zijn in de velden die betrokken zijn bij het berekenen van de hash en de vergelijking, zolang het object in de Set is. Anders wordt de integriteit van de collectie geschonden.
Bijvoorbeeld, als je een klasse maakt om in NSSet op te slaan, overschrijf dan deze methoden:
- (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];
}
Dit zorgt ervoor dat Set de uniekheid van objecten correct bepaalt.