2010-05-28 2 views
1

Я создаю приложение iPhone для навигации на базе ядра с несколькими экранами. Скажем, это приложение для флэш-карт. Модель данных очень проста: только два объекта: язык и CardSet. Существует взаимосвязь «один ко многим» между сущностью Language и объектами CardSet, поэтому каждый Язык может содержать несколько наборов карт. Другими словами, язык имеет отношения «один ко многим» Language.cardSets, который указывает на список CardSets, а CardSet имеет отношение CardSet.language, которое указывает на язык.NSFetchedResultsController на вторичном UITableView - как запросить данные?

Существует два экрана: (1) Начальный экран TableView, который отображает список языков; и (2) дополнительный экран TableView, который отображает список наборов карт на языке.

На начальном экране, в котором перечислены языки, я использую NSFetchedResultsController, чтобы обновлять список языков. Экран пропускает выбранный язык на вторичный экран.

На вторичном экране я пытаюсь выяснить, должен ли я снова использовать NSFetchedResultsController для поддержки списка CardSets, или если я должен работать через Language.cardSets, просто вытащив список из объектной модели. Последнее наиболее полезно, потому что у меня уже есть язык, но потом он не будет автоматически обновляться при изменениях.

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

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name LIKE[c] 'Chuck Norris'"]; 

Как я могу получить доступ к моим данным посредством прямого отношения - Language.cardSets - а также таблицы автоматического обновления с помощью NSFetchedResultsController? Это возможно?

ответ

0

Если вы используете NSFetchedResultsController, вы получите автоматическое уведомление о любых изменениях в наборе, который является чистой победой. Лично я бы использовал второй NSFetchedResultsController только для его удобства.

+0

В конце концов, я просто использовал 'NSFetchedResultsController' и сделал предположение, что мои объекты имеют уникальные имена. – Jason

+0

Вы можете сказать недостижимому NSFetchRequest, чтобы возвращать uniques. Не уверен, знаете ли вы об этом флаге. –

Смежные вопросы