Sobes.tech
Junior — Middle

Obyektning Set to'plamiga to'g'ri qo'shilishi uchun asosiy mezonlar qanday?

sobes.tech AI

AIdan javob

Obyektni to'g'ri tarzda Set to'plamiga (masalan, iOS'da NSSet) qo'shish uchun:

  • -hash va -isEqual: metodlarini to'g'ri va muvofiq tarzda amalga oshirish kerak.

    • -hash teng deb hisoblangan obyektlar uchun bir xil qiymatni qaytarishi kerak.
    • -isEqual: obyektlarning tengligini aniq belgilashi kerak.
  • Ob'ekt Set ichida bo'lsa, uning maydonlari o'zgarmas bo'lishi kerak, aks holda kolleksiyaning yaxlitligi buziladi.

Masalan, agar siz NSSetda saqlash uchun o'z sinfingizni yaratgan bo'lsangiz, bu metodlarni qayta yozing:

- (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 obyektlarning noyobligini to'g'ri aniqlashini ta'minlaydi.