Back to questions
Junior — Middle
71
Каковы основные критерии, которым должен соответствовать объект для корректного добавления в коллекцию Set?
Companies where asked
Uzum
Answer from AI
sobes.tech 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 корректно определит уникальность объектов.