Junior — Middle
Kokie yra pagrindiniai kriterijai, kuriems turi atitikti objektas, kad teisingai būtų pridėtas į Set kolekciją?
sobes.tech AI
Atsakymas iš AI
Norint teisingai pridėti objektą į Set kolekciją (pavyzdžiui, NSSet iOS), objektas turi:
-
Teisingai ir nuosekliai įgyvendinti
-hashir-isEqual:metodus.-hashturi grąžinti tą pačią reikšmę objektams, kurie laikomi lygiais.-isEqual:turi tiksliai nustatyti objektų lygybę.
-
Būti nepakitęs tose laukuose, kurie dalyvauja hash skaičiavime ir palyginime, kol objektas yra
Set. Kitaip, kolekcijos vientisumas bus pažeistas.
Pavyzdžiui, jei kuriate savo klasę saugoti NSSet, perrašykite šiuos metodus:
- (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];
}
Tai užtikrina, kad Set teisingai nustatys objektų unikalumą.