Мой вопрос похож на этот:
ResultsController для другого ResultsController
Типичная структура приложения на ios - это детализация данных с помощью табличных представлений имножество моделей приложений являются иерархическими.Например, кинофестиваль может иметь много фильмов, которые могут иметь много показов, которые могут иметь много участников.Если мы используем Базовые данные для представления этой модели, то мы можем использовать NSFetchedResultsController
для заполнения Фильмов в UITableView
.Использование NSFetchedResultsController
значительно повышает производительность и эффективность использования памяти, а также обеспечивает встроенную поддержку для наблюдения за изменениями в базовых данных.Я хотел бы максимально использовать это в своем проекте.
Так что, если у нас есть таблица Фильмов, подкрепленная этим сладким NSFetchedResultsController
, и пользователь выбирает Фильм, чтобы увидеть списокего показы, мы можем передать этот фильм (подкласс NSManagedObject
) новому UITableViewController
и заполнить эту таблицу показами фильма.
Суть моего вопроса не в том, «Как мне это сделать??»Вместо этого он спрашивает, путешествуют ли преимущества NSFetchedResultsController
вместе с NSManagedObject
.Я мог бы создать новый контроллер результатов, используя событие в предикате, но мне это не нужно.Если я передам объект Фильм в переменную с именем film
, и мое отношение ко многим будет идентифицировано как screenings
, то я думаю, что смогу получить набор показов, связанных с этим фильмом, например:
NSSet *filmScreenings = [film screenings];
Если я преобразую этот набор в массив и использую его в качестве данных, подкрепляющих мой новый табличный просмотр скринингов, теряю ли я преимущества NSFetchedResultsController
?Моя интуиция говорит мне «да», особенно о поддержке мониторинга изменений - но часто задаваемые вопросы в документах Apple заставили меня задуматься и спросить сообщество в целом.Ознакомьтесь с вопросом в этом FAQ , который называется «У меня есть отношение ко многим из сущности A к сущности B ...»
Должен ли я тогда использовать этот метод доступа или создатьновый NSFetchedResultsController
?