Junior — Middle
Welche Hauptkriterien muss ein Objekt erfüllen, um korrekt in die Sammlung Set eingefügt zu werden?
sobes.tech KI
Antwort von AI
Um objeto muss korrekt implementierte und konsistente Methoden -hash und -isEqual: aufweisen, um ihn korrekt zu einer Set-Sammlung (z.B. NSSet in iOS) hinzuzufügen:
-
-hashmuss für als gleich betrachtete Objekte denselben Wert zurückgeben. -
-isEqual:muss die Gleichheit von Objekten genau bestimmen. -
Das Objekt sollte in den Feldern, die bei der Hash-Berechnung und dem Vergleich beteiligt sind, unveränderlich sein, solange es sich im Set befindet. Andernfalls wird die Integrität der Sammlung verletzt.
Beispielsweise, wenn Sie eine Klasse erstellen, um sie in NSSet zu speichern, überschreiben Sie diese 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];
}
Dies stellt sicher, dass Set die Einzigartigkeit der Objekte korrekt erkennt.