Методы доступа, созданные отношениями ко многим, так же хороши, как NSFetchedResultsControllers? - PullRequest
1 голос
/ 26 января 2012

Мой вопрос похож на этот:

ResultsController для другого ResultsController

Типичная структура приложения на ios - это детализация данных с помощью табличных представлений имножество моделей приложений являются иерархическими.Например, кинофестиваль может иметь много фильмов, которые могут иметь много показов, которые могут иметь много участников.Если мы используем Базовые данные для представления этой модели, то мы можем использовать NSFetchedResultsController для заполнения Фильмов в UITableView.Использование NSFetchedResultsController значительно повышает производительность и эффективность использования памяти, а также обеспечивает встроенную поддержку для наблюдения за изменениями в базовых данных.Я хотел бы максимально использовать это в своем проекте.

Так что, если у нас есть таблица Фильмов, подкрепленная этим сладким NSFetchedResultsController, и пользователь выбирает Фильм, чтобы увидеть списокего показы, мы можем передать этот фильм (подкласс NSManagedObject) новому UITableViewController и заполнить эту таблицу показами фильма.

Суть моего вопроса не в том, «Как мне это сделать??»Вместо этого он спрашивает, путешествуют ли преимущества NSFetchedResultsController вместе с NSManagedObject.Я мог бы создать новый контроллер результатов, используя событие в предикате, но мне это не нужно.Если я передам объект Фильм в переменную с именем film, и мое отношение ко многим будет идентифицировано как screenings, то я думаю, что смогу получить набор показов, связанных с этим фильмом, например:

NSSet *filmScreenings = [film screenings];

Если я преобразую этот набор в массив и использую его в качестве данных, подкрепляющих мой новый табличный просмотр скринингов, теряю ли я преимущества NSFetchedResultsController?Моя интуиция говорит мне «да», особенно о поддержке мониторинга изменений - но часто задаваемые вопросы в документах Apple заставили меня задуматься и спросить сообщество в целом.Ознакомьтесь с вопросом в этом FAQ , который называется «У меня есть отношение ко многим из сущности A к сущности B ...»

Должен ли я тогда использовать этот метод доступа или создатьновый NSFetchedResultsController?

1 Ответ

2 голосов
/ 26 января 2012

При этом вы потеряете преимущества NSFetchedResultsController (например, пакетное извлечение данных и мониторинг изменений), поскольку вы собираетесь заменить его простым NSArray. Лучше всего передать ваш Film контроллеру данных и построить NSFetchedResultsController, используя это Film в предикате для NSFetchRequest.

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