Правильное использование кеша NSFetchedResultsController

Я использую NSFetchedResultsController для работы с UITableView, и все работает нормально, и я нашел его очень мощным, особенно в сочетании с делегатом результатов. Для детализации таблицы я повторно использую тот же класс контроллера, экземпляры которого создаются с параметрами, щелкнув строку ячейки, затем контроллер перемещается в UINavigationController, и создается другое табличное представление, опять же с NSFetchedResultsController.

Дело в том, что каждый контроллер имеет свой собственный кеш, и имя кеша получается с уникальным идентификатором [NSString stringWithFormat "cacheName _% @", uniqueStringForCell], и, в конце концов, у меня, очевидно, может быть много кешей.

Теперь вопросы.

1) Наличие большого количества кешей может быть проблемой?

2) Когда мы должны использовать кеш?

3) В случае deleteCacheWithName, где лучше всего разместить такой метод? Я пробовал использовать viewWillDisappear, но с этим, я полагаю, у меня могут возникнуть проблемы, когда представление снова появится, а кеш больше не будет, например, при использовании с UINavigationController. Наверное, лучше всего использовать метод dealloc?

4) Какая связь между кешем и управлением памятью? Я имею в виду, когда (недействительно)didReceiveMemoryWarning отправлено, мне нужно удалить кеш? Если да, то как насчет его восстановления? Каков предпочтительный способ, может быть, повторно выполнить выборку?

5) для контроллера выборки задан делегат UITableViewController (fetchController.delegate = self), есть ли с этим какие-либо проблемы? В том смысле, что в случае изменения предупреждается более одного контроллера? И удаляет ли deleteCacheWithName также делегат?

спасибо

14
задан Leonardo 15 July 2011 в 09:48
поделиться