2010-12-03 9 views
0

私は、グループエンティティの名前属性で結果をグループ化するために、fetchRequestでsectionNameKeyPath "group.name"を使用しているコアデータアプリケーションを持っています。私はgroup.nameでグループ化していますが、というグループをgroup.name以外で並べ替えたいと思います。 NSFetchedResultsControllerドキュメントによれば、コントローラは、セクション、配列 における最初のソート記述子を生成iphone SDK:コアデータ、NSFetchedResultsControllerのセクションをソートする方法は?

場合 セクションにグループ化オブジェクトを使用されています。そのキーは、sectionNameKeyPathと同じ でなければならないか、 のキーを使用した相対的な順序付けは、sectionNameKeyPathを使用して と一致する必要があります。セクションは、インクルードがでグループ化されているのと同じ順序でソートされなければならないことを意味し

。ドキュメントにもかかわらず、前のiOS 4.2へのあなたが並べ替えを許可最初のソート記述子としてsectionNameKeyPathを指定せずに逃げることができセクションは、しかし、もはや。

NSFetechedResultsControllerのセクションをソートする最も良い方法は何ですか?たとえば、セクションを "group.name"でグループ化し、 "group.timestamp"でソートするとします。 NSFetchedResultsControllerドキュメントから

答えて

0

あなたは セクションおよび指標のタイトルの作成をカスタマイズする 場合は、このクラスのサブクラスを作成します。 sectionIndexTitleForSectionNameをオーバーライドします。 の場合、セクションインデックスのタイトルは、 大文字以外のもの セクション名の最初の文字にします。 既知のすべてのセクションに:あなたは、インデックスのタイトルが が sectionIndexTitleForSectionNameを呼び出すことによって作成された配列以外の何か になりたい 場合はsectionIndexTitlesを上書き 。

+0

NSFetchedResultsControllerのセクションをソートすると、NSFetchedResultsControllerのセクションをソートすると言っていますか?非常に形而上学的。 – memmons

+0

4.2より前には、sectionNameKeyPathの最初の文字にアルファベット順にソートされたハードコーディングされたソートがありました。 4.2では、最初に提供されたソートを行います。これらのデフォルト動作のいずれかを無効にする場合は、上記のFRCメソッドをオーバーライドして、独自の動作を提供する必要があります。 – TechZen

関連する問題