Основные данные iPhone - Как показать выбранные записи на основе родительских отношений? - PullRequest
0 голосов
/ 16 августа 2010

Использование базовых данных. Допустим, у нас есть модели для команды и игрока.

Предположим: -Каждый игрок является членом одной команды -Соответствующие отношения были сделаны в файле xcdatamodel.

У меня есть TeamListViewController (список всех команд), когда я выбираю команду, я хочу видеть список игроков, связанных с этой выбранной командой, в PlayerListViewController.

Затем я хочу выбрать отдельного игрока, посмотреть PlayerViewController и просмотреть его личную информацию, отредактировать данные и т. Д.

Я знаю, как использовать fetchResultsController для получения списка всех игроков.

  1. Как мне лучше всего получить данные, необходимые для отображения только игроков выбранной команды?

  2. Кроме того, если я просто перетаскиваю данные в массив, чтобы я мог их отобразить, как мне также обеспечить, чтобы массив оставался синхронизированным с основными данными при внесении других изменений в запись?

1 Ответ

2 голосов
/ 16 августа 2010

Для извлечения объектов, соответствующих определенным критериям, требуется NSPredicate.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"team=Tigers"];
[fetchRequest setPredicate:predicate];

Теперь запрос на выборку возвращает результаты, где атрибут команды = "Тигры".Без предиката он будет возвращать все объекты.

Предикаты могут быть сложными - вы можете иметь несколько условий, и специальные операторы определены как «ЛЮБОЙ» или «НРАВИТСЯ».См. Руководство по программированию предикатов

По второму вопросу - ожидаете ли вы получить доступ к хранилищу основных данных с несколькими потоками?Начните читать ... вам нужен контекст управляемого объекта для каждого потока.Если нет, то вам не нужно беспокоиться.Изменения в базовом хранилище «ошибаются» так же, как если бы вы следили за отношением к объекту, который вы явно не извлекли.

...