Основные данные, NSArrayContainer Arrayсодержание многих массивов - PullRequest
1 голос
/ 27 июня 2009

Пока в моем приложении три сущности: тег, фид и история

Тег имеет отношение ко многим каналам, а каналы имеют отношение ко многим истории.

У меня есть NSArrayController для каждой сущности, один с именованными тегами, один с именами каналов и один с именами историй. Все они имеют один и тот же «managedObjectContext», который они получают от владельца файла. набор содержимого именованных каналов AC связан с ключом контроллера 'tags': выбор, путь к ключу: каналы

Я хочу, чтобы набор содержимого третьего массива был привязан ко всем историям во всех каналах выбранного тега : я попытался использовать путь к ключу: "@ unionOfArrays.stories" но не смог заставить его работать.

Есть идеи, как мне поступить?

Ответы [ 2 ]

2 голосов
/ 27 июня 2009

Прежде всего, в вашем вопросе есть одна вещь, которая несовместима с работой чего-либо:

Они все одни и те же 'managedObjectContext', который они получают от владельца файла

Когда я настраивал это в IB, это просто не работало. Вы наверняка имеете в виду, что привязали управляемый объектObjectContext к делегату приложения.

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

1. Проверьте обратные отношения

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

Для связи один-ко-многим тегам-> каналам у вас будет отношение ко многим в элементах тегов, называемых "каналами", которые вы описали.

У вас также будет отношение «один к одному» в сущности каналов, называемое «тег». Вы бы выбрали обратную связь в качестве каналов, как показано ниже:

Отношение одиночной подачи http://img20.imageshack.us/img20/2557/tagsinglefeedrelationsh.jpg

2. Связать истории

Вы не упоминаете, как создали свои истории. Предполагая, что вы ничего не делаете в коде, у меня будет 4 контроллера массива:

  1. Метки
  2. Ленты в выбранном теге
  3. Истории в выбранной ленте
  4. Все истории в выбранном теге

Если у вас просто есть контроллер массива историй, набор содержимого которого ни к чему не привязан, вы будете эффективно создавать истории в вакууме - они не будут связаны с какими-либо фидами или тегами, что может быть причиной того, что вы ' эти ошибки.

3. Настройка контроллера «Истории в выбранном теге»

Вам необходимо установить массив содержимого, а не набор содержимого.

Свяжите массив содержимого с контроллером «Feeds in Selected Tag».

  • Ключ: упорядоченные объекты
  • Ключевой путь: @ unionOfArrays.stories

Это отправляет истории Key Path каждому объекту в контроллере «Feeds in Selected Tag», таким образом получая все истории во всех каналах в выбранном теге.

4. Рок-н-ролл!

Мы закончили. Если вы действительно не можете выполнить эту настройку, дайте мне знать, и я могу опубликовать ссылку на созданный мной файл XIB.

0 голосов
/ 27 июня 2009

Вы можете попробовать @distinctUnionOfSets.stories. Все взаимосвязи Core Data 1-n реализованы в виде наборов.

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