Я использую NSFetchedResultsController для работы с UITableView, и все работает отлично, и я нашел его очень мощным, особенно в сочетании с делегатом результатов. Для сверления таблицы я повторно использую тот же класс контроллера, который получает экземпляр с параметрами, нажимая на строку ячейки, затем контроллер помещается в UINavigationController, а другой вид таблицы создается снова с помощью NSFetchedResultsController.
На этом этапе каждый контроллер имеет свой собственный кеш, а имя кеша выводится с уникальным идентификатором [NSString stringWithFormat "cacheName _% @", uniqueStringForCell], и в конце я, очевидно, могу иметь много кешей.
Теперь вопросы.
1) У многих проблем с кешем может быть проблема?
2) Когда мы должны использовать кеш?
3) В случае deleteCacheWithName, где лучше всего разместить такой метод? Я попытался в viewWillDisappear, но с этим я полагаю, что у меня может быть проблема, когда представление снова появится, а кеш больше не присутствует, например, при использовании с UINavigationController. Вероятно, метод dealloc - лучшее место?
4) Какая связь между управлением кешем и памятью? Я имею в виду, когда отправляется (void) didReceiveMemoryWarning, мне нужно удалить кеш? Если да, как насчет его повторного восстановления? Какой предпочтительный способ, возможно, выдает выборку?
5) контроллер выборки имеет свой делегат, установленный в UITableViewController (fetchController.delegate = self), есть ли проблемы с этим? В каком-то смысле, если в случае изменения предупреждаются более одного контроллера? И deleteCacheWithName также удаляет делегат?
спасибо