NSCache и Dictionary оба используются для хранения в памяти, но служат разным целям в сценариях кэширования iOS.
NSCache потокобезопасен по умолчанию — к нему можно обращаться из нескольких потоков без дополнительной синхронизации. Обычный Dictionary не потокобезопасен и требует ручной блокировки или конкурентной очереди.NSCache автоматически удаляет записи при нехватке памяти в системе, помогая предотвратить краши. Dictionary удерживает все объекты, пока ты их явно не удалишь.NSCache не копирует ключи, требуя лишь соответствия NSObjectProtocol. Dictionary копирует ключи, требуя соответствия Hashable.NSCache предоставляет свойства вроде countLimit и totalCostLimit для тонкой настройки политики вытеснения.cache.countLimit = 100
cache.totalCostLimit = 1024 * 1024 * 50 // 50 MB
NSCacheDictionaryИспользуй NSCache как вариант по умолчанию для кэширования временных данных в памяти в iOS-приложениях. Используй Dictionary только когда нужна гарантированная сохранность записей и ты готов сам управлять потокобезопасностью.
NSCache автоматически копирует свои ключи, требуя от них соответствия протоколу Hashable, как в стандартном Dictionary.
Новый — ещё не проверен сообществом
Вы