Как иметь дело со многими ко многим отношениям с NSFetchedResultsController?

Хорошо, таким образом, у меня есть два объекта в моей модели данных (скажем, entityA и entityB), оба из этих объектов имеют к - многие отношения друг к другу.

Я имею, устанавливают NSFetchedResultsController для выборки набора entityA. Теперь я пытаюсь иметь названия раздела tableview быть заголовком entityB.

sectionNameKeyPath:@"entityB.title"

Теперь это вызывает проблему, где именем раздела, возвращенным из тех отношений, кажется, ({title1}) или ({title1, title2... titleN}), очевидно, в зависимости от того, сколько другого entityB's включены. Это не выглядит большим в tableview и не группирует объекты, как я хотел бы.

То, что я хотел бы, является разделом на entityB заголовок с entityA, появляющимся под каждым разделом под несколькими разделами при необходимости. Я в замешательстве как, как я, как предполагается, достигаю этого, должен ли я обновить предикат, чтобы заставить объект появляться многократно или должен ли я обновить раздел и функции заголовка, чтобы сделать некоторую обработку как циклы контроллера через объекты.

Любая справка ценится :)

Спасибо

5
задан Phil Yates 19 April 2010 в 21:06
поделиться

1 ответ

Вы получите это, потому что вызов @ "entityB.title" возвращает массив | набор заголовков. Это то, что вы видите, поскольку это переводится в:

NSSet *titles = [myEntityA valueForKeyPath@"entityB.title"];

Чтобы исправить это, вам нужно отменить ваш NSFetchedResultsController, чтобы вы получали объекты EntityA через объекты EntityB. Тогда ваш sectionKeyPath (и ваша основная сортировка) будет противоречить только @ "title".

5
ответ дан 14 December 2019 в 19:07
поделиться