Как бороться со многими отношениями с NSFetchedResultsController? - PullRequest
5 голосов
/ 20 апреля 2010

ОК, поэтому у меня есть две сущности в моей модели данных (скажем, entityA и entityB), обе эти сущности имеют отношение «многие-многие» друг к другу.

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

sectionNameKeyPath:@"entityB.title"

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

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

Любая помощь приветствуется:)

Спасибо

1 Ответ

5 голосов
/ 20 апреля 2010

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

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

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

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