Sobes.tech
Junior — Middle

Obyektin Set kolleksiyasına düzgün əlavə olunması üçün əsas meyarlar hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

Düzgün şəkildə bir obyekti Set kolleksiyasına (məsələn, iOS-də NSSet) əlavə etmək üçün:

  • -hash-isEqual: metodlarını düzgün və ardıcıl şəkildə tətbiq etməlisiniz.

    • -hash eyni olan obyektlər üçün eyni dəyər qaytarmalıdır.
    • -isEqual: obyektlərin bərabərliyini dəqiq müəyyən etməlidir.
  • Obyekt, Set-də olduğu müddətdə, hash hesablaması və müqayisədə iştirak edən sahələrdə dəyişməz olmalıdır. Əks halda, kolleksiyanın bütövlüyü pozular.

Məsələn, NSSet-də saxlamaq üçün öz sinfinizi yaradırsınızsa, bu metodları yenidən yazın:

- (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];
}

Bu, Set-in obyektlərin unikalığını düzgün müəyyən etməsini təmin edir.