Junior — Middle
Aké sú hlavné kritériá, ktorým musí objekt vyhovieť, aby bol správne pridaný do kolekcie Set?
sobes.tech AI
Odpoveď od AI
Pre správneho pridania objektu do kolekcie Set (napríklad NSSet v iOS) musí objekt:
-
Správne a konzistentne implementovať metódy
-hasha-isEqual:.-hashby mal vracať rovnakú hodnotu pre objekty považované za rovné.-isEqual:musí presne určovať rovnosť objektov.
-
Byť nemenný v poliach, ktoré sa podieľajú na výpočte hashu a porovnaní, pokiaľ je objekt v Set. Inak dôjde k narušeniu integrity kolekcie.
Napríklad, ak vytvárate vlastnú triedu na uloženie v NSSet, prepíšte tieto metódy:
- (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];
}
Toto zabezpečí, že Set správne určí jedinečnosť objektov.