I
iOS Broadcast
@ios_broadcast3.5K подп.
1.2Kпросмотров
33.7%от подписчиков
18 марта 2026 г.
📷 ФотоScore: 1.3K
🔨 NSCache как базовый инструмент in‑memory кеширования на iOS Забытый старичок NSCache - контейнер для in‑memory кеша в iOS c iOS 4, он сам умеет освобождать память по требованию системы и отлично себя зарекомендовал для этой задачи. Он ведёт себя похоже на Dictionary, но изначально спроектирован под сценарии «ускорить, но не сломать», когда cache‑miss всегда допустим. Что это даёт: 🟢Можно кэшировать тяжёлые объекты (разобранный rich text, изображения, результаты парсинга), не боясь утечек и переполнения памяти 🟢Система сама выкинет данные из кэша при нехватке памяти — без крашей и ручного менеджмента ⚠️ Корректность приложения не завязана на кэш: всё, что лежит в NSCache, можно безопасно пересоздать При работе с ним в современном окружении есть нюансы: 🟣NSCache работает только с классами (AnyObject): и ключ, и значение должны быть ссылочными типами; для Int/struct‑ов нужен boxing (NSNumber или свой класс‑обёртка) 🟣В проде почти всегда стоит задавать countLimit и totalCostLimit, иначе кэш может незаметно разрастись 🟣cost — это абстрактная метрика, а не байты: для текста можно брать length, для изображений —, например, ширина × высота, не стремясь к идеальной точности NSCache — отличный выбор для некритичного in‑memory кеширования «дорогих, но воспроизводимых» объектов внутри процесса, но для сети и данных, которые должны переживать перезапуск, его нужно сочетать с другими механизмами (например, URLCache и хранением на диске).
1.2K
просмотров
1452
символов
Да
эмодзи
Да
медиа

Другие посты @ios_broadcast

Все посты канала →
🔨 NSCache как базовый инструмент in‑memory кеширования на i — @ios_broadcast | PostSniper