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