Junior — Middle
Kādi ir galvenie kritēriji, kuriem objektam jāatbilst, lai pareizi pievienotos kolekcijai Set?
sobes.tech AI
Atbilde no AI
Lai pareizi pievienotu objektu kolekcijai Set (piemēram, NSSet iOS), objekts ir:
-
Pareizi un konsekventi jāievieš metodes
-hashun-isEqual:.-hashjāatgriež tāda pati vērtība objektiem, kas tiek uzskatīti par vienādiem.-isEqual:jāprecīzi nosaka objektu vienādību.
-
Objekts jābūt nemainīgam tajos laukos, kas iesaistīti heša aprēķinā un salīdzināšanā, kamēr tas atrodas
Set. Pretējā gadījumā kolekcijas integritāte tiks bojāta.
Piemēram, ja veidojat savu klasi, lai to glabātu NSSet, pārrakstiet šos metodes:
- (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];
}
Tas nodrošina, ka Set pareizi noteiks objektu unikālo identitāti.