Junior — Middle
Koji su glavni kriterijumi koje objekat mora ispuniti da bi bio ispravno dodat u kolekciju Set?
sobes.tech АИ
Одговор од АИ
Za pravilno dodavanje objekta u kolekciju Set (na primer, NSSet u iOS) objekat mora:
-
Ispravno i konzistentno implementirati metode
-hashi-isEqual:.-hashmora vraćati istu vrednost za objekte koji se smatraju jednakim.-isEqual:mora tačno odrediti jednakost objekata.
-
Biti nepromenljiv u poljima koja učestvuju u izračunu heša i poređenju, dok je objekat u Set-u. U suprotnom, biće narušena celokupnost kolekcije.
Na primer, ako kreirate svoju klasu za skladištenje u NSSet, prepisujte ove metode:
- (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];
}
Ovo garantuje da će Set pravilno odrediti jedinstvenost objekata.