1

NSFetchedResultsControllerがあり、これは、sectionNameKeyPathと同じように、並べ替え記述子配列の最初の並べ替え記述子を持っているため、異なるセクションが表示されます。しかし、2番目のソート記述子を別のprセクションにしたいです。データを配列にプッシュしてから再度並べ替える必要なしにこれを行う良い方法はありますか?

乾杯

ニック

4

1 に答える 1

0

セクションごとに内部で異なる配列を使用することを既に提案しました。これは悪いアプローチではありません。実際には、表示されたオブジェクトと実際のオブジェクトのインデックス パス間のマッピングを気にするだけでよいからです。

つまり、テーブル ビューが表示しているアイテムの数が少ないことがわかります。これは、コントローラーにそれらのアイテムを要求するためです。FRC でフェッチされた結果の配列からアイテムを直接返す必要はありません。

インデックス パスを取得し、要求されているセクションを特定し、そのセクションの並べ替え済みの行を取得します。データは非常に小さいため、要求されたときにその場で並べ替えることができます。

もう 1 つの方法は、データ モデルに別の属性を追加することです。この属性はセクション内の並べ替え順序を表し、配列全体が最初にセクションで並べ替えられ、次にその属性で並べ替えられるため、任意の値に設定できます。

また、フェッチされた結果コントローラのフロントエンドとしてプロキシ オブジェクトを使用する方が簡単な場合があります。「複数の配列」アプローチと同様に、テーブル ビューによってセクションが要求されたときに各セクションに一意の並べ替え記述子を適用し、独自の並べ替え順序でオブジェクトを返すプロキシ オブジェクトを使用するだけです。

于 2012-09-12T18:48:45.027 に答える