Junior — Middle
Mik a fő kritériumok, amelyeket egy objektumnak meg kell felelnie a Set gyűjteménybe való helyes hozzáadásához?
sobes.tech MI
Válasz az MI-től
Egy objektum helyes hozzáadásához egy Set gyűjteményhez (például NSSet iOS-en) az alábbiak szükségesek:
-
Helyesen és következetesen kell megvalósítani a
-hashés-isEqual:metódusokat.- A
-hashugyanazt az értéket kell, hogy adja az egyenlőnek tekintett objektumok esetén. - Az
-isEqual:pontosan kell, hogy meghatározza az objektumok egyezőségét.
- A
-
Az objektumnak változatlannak kell lennie a hash és összehasonlítás szempontjából azokban a mezőkben, amelyek részt vesznek a hash számításában és az összehasonlításban, amíg az objektum a Set-ben van. Ellenkező esetben sérül a gyűjtemény integritása.
Például, ha saját osztályt hozol létre, hogy NSSet-ben tárold, írd felül ezeket a metódusokat:
- (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];
}
Ez biztosítja, hogy a Set helyesen határozza meg az objektumok egyediségét.