Подтвердить что ты не робот

Что такое NSCache?

Может кто-нибудь коротко объяснить мне, когда мне нужно будет использовать NSCache? Я прочитал документацию, и я ее не понимаю. Например, дайте мне пример сценария, где NSCache был бы полезен? Спасибо.

4b9b3361

Ответ 1

Это более или менее точно так же, как словарь, со следующими дополнительными вещами (как упоминалось в документах):

Класс NSCache включает различные политики автоматического удаления, которые убедитесь, что он не использует слишком много системной памяти. Система автоматически выполняет эти политики, если требуется другая память Приложения. При вызове эти политики удаляют некоторые элементы из кэш, сводя к минимуму его память след.

Вы можете добавлять, удалять и запрашивать элементы в кеше из разных потоков без необходимости блокировать кешируйте себя.

Получение чего-то из объекта NSCache возвращает автореализованный результат.

В отличие от объекта NSMutableDictionary кеш не копирует ключ объекты, которые помещаются в него.

Вы можете использовать его, если ваше приложение имеет множество данных, с которыми ему нужно работать, но вы не можете хранить все это в памяти. Например, если у вас есть приложение, которое извлекает данные из базы данных SQL Lite или веб-службы, вы можете сохранить ее в NSCache после поиска. Затем, когда вам это нужно снова, вы можете сначала проверить кеш и только поразить базу данных, если она не находится в кеше. Основным преимуществом этого сценария в использовании обычного словаря является то, что если вы кладете слишком много материала в кеш, и он начинает заполнять память, он автоматически откажется от вещей, чтобы освободить память для вас.