Кэш-память Когда это возможно, контроллер использует кэш-память, чтобы избежать необходимости повторять работу, выполняемую при настройке любых разделов и упорядочении содержимого.Кэш поддерживается при каждом запуске приложения.
Когда вы инициализируете экземпляр NSFetchedResultsController, вы обычно указываете имя кэша.(Если вы не укажете имя кэша, контроллер не будет кэшировать данные.) Когда вы создаете контроллер, он ищет существующий кэш с данным именем:
Если контроллер не может найти подходящийкеш, он рассчитывает необходимые разделы и порядок объектов в разделах.Затем он записывает эту информацию на диск.
Если он находит кэш с тем же именем, контроллер проверяет кэш, чтобы определить, является ли его содержимое по-прежнему действительным.Контроллер сравнивает текущее имя объекта, хэш версии объекта, дескрипторы сортировки и путь ключа раздела с теми, которые хранятся в кэше, а также дату изменения кэшированного информационного файла и файла постоянного хранилища.
Если кеш соответствует текущей информации, контроллер повторно использует ранее вычисленную информацию.
Если кеш не соответствует текущей информации, то необходимая информация пересчитывается и кэш обновляется.
Каждый раз, когда изменяется раздел и информация о заказе, кэш обновляется.
Если у вас есть несколько контроллеров извлеченных результатов с разными конфигурациями (разные дескрипторы сортировки и т. Д.), Вы должны назначить каждому свой кеш.name.
Вы можете очистить кеш, используя deleteCache (withName:).