Как использовать кэш в NSFetchedResultsController в Core Data - PullRequest
0 голосов
/ 16 мая 2019

Я делаю этот код в моем viewDidLoad методе

fetchedResultCont = NSFetchedResultsController(fetchRequest: req,
 managedObjectContext: container.viewContext,
 sectionNameKeyPath: nil,
 cacheName: nil)

Документы сказали, что мы можем использовать кеш для ускорения процесса, но реализации нет.

Может ли кто-нибудь сказать мне, как я могу использовать кэш вместо nil в имени кэша, чтобы ускорить процесс?

1 Ответ

0 голосов
/ 16 мая 2019

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

fetchedResultCont = NSFetchedResultsController(fetchRequest: req,
     managedObjectContext: container.viewContext,
     sectionNameKeyPath: "SectionKey",
     cacheName: "MyCache")

Однако, поскольку вы не используете разделы в запросе на выборку, кеш вам не поможет:

Из документации

Имя файла кэша, который должен использовать получатель.Передайте nil для предотвращения кеширования.

Предварительно вычисленная информация о секции кэшируется в личный каталог под этим именем.Если Базовые данные находят кэш, хранящийся с этим именем, проверяется, соответствует ли он fetchRequest.Если это так, кеш загружается напрямую - это позволяет избежать затрат на вычисление информации о разделе и индексе.Если кэшированная информация не соответствует запросу, кеш удаляется и пересчитывается, когда происходит выборка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...