私は、相互に多対多の関係を持つ2つのエンティティを持つコアデータモデルを持っています。
例えば、
Conference <<---->> Speaker
会議には多くのスピーカーを含めることができ、1人のスピーカーが多くの会議に参加することができます。
NSFetchedResultsControllerを使用しようとしていますが、fetchRequestのメインエンティティはSpeakerです。
すべてのスピーカーが正常に一覧表示されますが、セクションを「会議」名として取得し、そのセクション内のすべてのスピーカーを一覧表示しようとしています。スピーカーとしての「ジョン」という名前が2つのセクションに表示されるようにしたいと思います。これは、彼が2つの会議で講演者であることを意味します。
これは私が使用しているsectionNameKeyPathです: @"conferences.Name"
NSFetchedResultsController *aFetchedResultsController = [[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"conferences.Name" cacheName:@"fCache"] autorelease];
ちょっと動作しません。{TedEx}
使用するとセクションタイトルとして表示されます[sectionInfo name]
。
もう1つの問題は、I Oneスピーカーが1つのセクション(会議)に表示された場合、他のセクションには表示されないことです(そのセクション(会議)にそのスピーカーオブジェクトが含まれている場合でも)。
これは、sectionNameを結合された会議のセットとして取得するためである可能性があります。TedEx, SXSW
単一のセクションとして。
sectionNameKeypathを選び出し、1つの会議のみを取得し、それぞれの会議内のすべての講演者を一覧表示することを目標とする方法がいくつかあります。おそらく私はある種の述語を設定する必要がありますか?
ここでちょっとバインドしますが、アプローチは問題ですか?述語について読んだことがありますが、コアデータが初めての場合は理解するのが少し難しいです。