Вопрос проверяет знание работы со слабыми ссылками в коллекциях.
Используйте NSHashTable с опцией .weakObjects. Если объект удаляется, ссылка в коллекции становится nil.
1. Реализация:
let weakSet = NSHashTable<AnyObject>(options: .weakObjects)
weakSet.add(someObject)2. Проблемы:
Устаревшие ссылки: Если объект удален, обращение к нему даст nil.
Очистка: Нужно вручную фильтровать nil перед использованием.
3. Решение:
Периодически очищайте коллекцию:
let validObjects = weakSet.allObjects.compactMap { $0 }Вывод:NSHashTable решает проблему утечек, но требует ручного управления.