5

OK、データモデルに2つのエンティティ(たとえば、entityAとentityB)があり、これらのエンティティは両方とも相互に多対多の関係にあります。

一連のentityAをフェッチするようにNSFetchedResultsControllerを設定しました。ここで、テーブルビューのセクション名をentityBのタイトルにしようとしています。

sectionNameKeyPath:@"entityB.title"

これにより問題が発生します。その関係から返されるセクション名は、関係するさまざまなentityBの数に応じて、明らかに({title1})または({title1、title2 ... titleN})のように見えます。これはテーブルビューでは見栄えが悪く、私が望むようにオブジェクトをグループ化しません。

私が欲しいのは、entityBのタイトルごとのセクションで、entityAは各セクションの下に、必要に応じて複数のセクションの下に表示されます。エンティティを複数回表示するために述語を更新する必要があるのか​​、コントローラーがループするときに何らかの処理を行うためにセクション関数とヘッダー関数を更新する必要があるのか​​、これをどのように達成するのか迷っています。オブジェクト。

どんな助けでも大歓迎です:)

ありがとう

4

1 に答える 1

5

@ "entityB.title"を呼び出すと、タイトルの配列|セットが返されるため、これがわかります。それが次のように翻訳されているときにあなたが見ているものです:

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

これを修正するには、NSFetchedResultsControllerを逆にして、EntityBオブジェクトを介してEntityAオブジェクトをフェッチする必要があります。その場合、sectionKeyPath(およびプライマリソート)は@"title"に対してのみ反対になります。

于 2010-04-19T21:25:39.750 に答える