1

NSArrayデータベーステーブルと見なされる可能性のあるものの内容を効果的に表すオブジェクトがいくつかあります。そのうちの1つを並べ替えて、他のすべてを同じ順序で並べ替えてもらいたいと思います。

この例としてはNSArray、「name」、「address」、「phone_number」のオブジェクトを用意し、それらをすべて名前で並べ替える場合があります。

現在のアプローチは、「名前」に対してのみ比較を実行し、影響を受けるすべての配列でデータを移動するカスタムシェルソートルーチンです。これは機能し、比較的クリーンです。もちろん、vsCアレイのオーバーヘッドのためにヒットしNSObjects ます

これを行うためのより速く、よりクリーンで、より「iOS」の方法はありますか?

すべてをSQLiteテーブルにドロップして、そのようにしますか?

4

1 に答える 1

1

NSArrayクリーンな方法の 1 つは、データを 1 つのNSDictionaryオブジェクトに格納することです。次に、次のように配列を並べ替えることができます。

NSSortDescriptor *sortName = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
NSArray *sortedArray = [originalArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortName]]

私が考えることができる他の唯一の方法は次のとおりです。

  • インデックス、つまり数値 0、1、...、N-1 を含む配列を作成します。
  • name配列の内容に従ってインデックスをソートします。
  • 配列ごとに、元の配列と並べ替えられたインデックスに基づいて並べ替えられた配列を作成します。
于 2012-09-25T05:16:53.110 に答える