Sobes.tech
Junior — Middle

რა ძირითადი კრიტერიუმებია, რომელთა მიხედვითაც ობიექტი უნდა შეესაბამებოდეს სწორად დამატებას კოლექციაში Set?

sobes.tech AI

პასუხი AI-სგან

სწორი წესით ობიექტის დამატება Set კოლექციაში (მაგალითად, NSSet iOS-ში) უნდა:

  • სწორად და თანმიმდევრულად განახორციელოს მეთოდები -hash და -isEqual:.

    • -hash უნდა აბრუნებდეს ერთსა და იმავე მნიშვნელობას ობიექტებისთვის, რომლებიც მიიჩნევა თანაბარად.
    • -isEqual: უნდა განსაზღვროს ობიექტების თანხვედრა ზუსტად.
  • ობიექტი უნდა იყოს შეუცვლელი იმ ველებში, რომლებიც მონაწილეობენ ჰეშის გამოთვლასა და შედარებაში, სანამ ის არის Set-ში. წინააღმდეგ შემთხვევაში, კოლექციის მთლიანობა დაირღვევა.

მაგალითად, თუ თქვენ ქმნით საკუთარ კლასს NSSet-ში შენახვისთვის, გადაწერეთ ეს მეთოდები:

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

ეს უზრუნველყოფს, რომ Set-ი სწორად განსაზღვრავს ობიექტების უნიკალობას.