Как использовать отношения многие ко многим в NSFetchedResultsController?
У меня есть две сущности: группа и контакт. Контакт может принадлежать многим группам, а группа может иметь много контактов. Так что я создаю отношения многие ко многим. как это:
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 ответ
Я думаю, что для UITableView невозможно отобразить раздел без ячеек. Если вы можете принять этот факт, тогда ваш NSFetchResultController должен быть таким, как показано ниже.
NSFetchRequest *fetchRequest = ....
NSEntityDescription *entity = .... @"Contact" ....
fetchRequest.entity = entity;
[NSFetchResultsController alloc] initWithFetchRequest:fetchRequest
...
sectionNameKeyPath:@"grp"
...