Back to questions
Junior — Middle
82
Можете объяснить, что такое NSHashTable и как она используется?
Companies where asked
GreenData
Answer from AI
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 не подходит.