今、私はこことグーグルでこれを調べました、そしてそれは誰もがNSSet
重複を取り除くために使うようです。これはすばらしいことですが、この方法では並べ替えも削除されるようです。
1)NSSetをアルファベット順に並べ替える方法はありますか?NSMutableArray
2)ループ内またはループ外の重複を削除するためのより良い方法。ファイルfor
からそれらを読み取ることにより、それらを配列に追加し.csv
ます。
ありがとう:)
今、私はこことグーグルでこれを調べました、そしてそれは誰もがNSSet
重複を取り除くために使うようです。これはすばらしいことですが、この方法では並べ替えも削除されるようです。
1)NSSetをアルファベット順に並べ替える方法はありますか?NSMutableArray
2)ループ内またはループ外の重複を削除するためのより良い方法。ファイルfor
からそれらを読み取ることにより、それらを配列に追加し.csv
ます。
ありがとう:)
を使用したいと思いますNSOrderedSet
。これに関するドキュメントは次のとおりです。
NSOrderedSet
配列から * を作成できます。using+orderedSetWithArray:
は、配列の既存の順序を保持します。まだ正しい順序になっていない場合、セットを直接ソートすることはできないため、順序付きセットを使用する意味はほとんどありませんが、 、またはさらに良いを使用して、通常の配列を簡単に構築し、それNSSet
を別の配列にソートできます。のソート方法のいずれか。-sortedArrayUsingDescriptor:
allObjects
NSArray
一方で (これについて不快なコメントが寄せられる可能性もありますが...)、NSArray
とは同じハッシュ テーブル機能の上に構築されてNSSet
いるように見えるため、次のようにすることができます。
id newObj = // Acquire new object from wherever
while( newObj ){
if( ![arrayImConstructing containsObject:newObj] ){
[arrayImConstructing addObject:newObj]
}
newObj = // Acquire next object
}
これは基本的に、順序付きセットを作成するときに行う必要があることであり、配列が十分に小さい ( に入れている場合UIPicker
) ため、パフォーマンスの違いにまったく気付かない可能性が非常に高くなります。それでも、2つを測定してから決定します。
* NSOrderedSet
iOS > 5.0 (または OS X > 10.7) で利用できます。
NSOrderedSet は、セットでの順序付けを提供します。