Как использовать отношения многие ко многим в NSFetchedResultsController? - PullRequest
3 голосов
/ 30 марта 2011

У меня есть две сущности: группа и контакт. Контакт может принадлежать многим группам, а группа может иметь много контактов. Так что я создаю отношения многие ко многим. как это:

Group           Contact
attribute       attribute
  gname           name
  gid             gender
relationship    relationship
  cnt<<--------->>grp

Я хочу отобразить все контакты в UITableView, который имеет много разделов, каждый раздел имеет много строк. как это:

GroupA
  Contact1
  Contact2
  Contact3
GroupB
  Contact1
  Contact3
GroupC
  Contact2
  Contact3

У меня вопрос, как создать NSFetchedResultsController для достижения этой цели? Я могу использовать атрибут, чтобы разделить UITableView на разделы. Я пытался разделить это, используя простые отношения ко многим, но потерпел неудачу, как для многих ко многим, я ...

Если у меня есть группа с именем «GroupD», к которой я не имею никакого контакта. Таким образом, у сущности Contact нет строки, атрибут grp которой содержит «GroupD». Тогда я получил только три раздела. Я хочу, чтобы мой UITableView был таким:

GroupA
  Contact1
  Contact2
  Contact3
GroupB
  Contact1
  Contact3
GroupC
  Contact2
  Contact3
GroupD

но я получил:

GroupA
  Contact1
  Contact2
  Contact3
GroupB
  Contact1
  Contact3
GroupC
  Contact2
  Contact3

Я думаю, что самой большой проблемой является мой способ создания NSFetchedResultsController.

, пожалуйста, помогите.

любой ответ будет признателен, заранее спасибо.

1 Ответ

0 голосов
/ 30 марта 2011

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

NSFetchRequest *fetchRequest = ....
NSEntityDescription *entity = .... @"Contact" ....
fetchRequest.entity = entity;

[NSFetchResultsController alloc] initWithFetchRequest:fetchRequest
                                   ...
                                   sectionNameKeyPath:@"grp"
                                   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...