Назад к вопросам
Junior — Middle
80
Можете объяснить, что такое NSHashTable и как она используется?
Компании, где спрашивали
GreenData
Ответ от нейросети
sobes.tech AI
NSHashTable — это коллекция в iOS (Objective-C/Swift), похожая на NSMutableSet, но с более гибкой политикой хранения объектов. В отличие от обычных множеств, NSHashTable может хранить объекты с разными вариантами владения: сильными, слабыми или без удержания (weak, strong, или без удержания).
Это полезно, когда нужно избежать циклических ссылок или хранить объекты без увеличения счётчика ссылок, например, для делегатов или наблюдателей.
Пример использования NSHashTable с слабыми ссылками:
NSHashTable *weakTable = [NSHashTable weakObjectsHashTable];
NSObject *obj = [[NSObject alloc] init];
[weakTable addObject:obj];
// obj будет автоматически удалён из таблицы, когда на него не останется сильных ссылок
Таким образом, NSHashTable помогает управлять памятью и ссылками в коллекциях, где обычный NSMutableSet не подходит.