web-dev-qa-db-ja.com

NSMutableArrayの文字列をアルファベット順に並べ替えるにはどうすればよいですか?

NSMutableArrayに文字列のリストがあり、テーブルビューに表示する前にアルファベット順に並べ替えます。

どうやってやるの?

42
praveena

sortedArrayUsingSelector: および localizedCaseInsensitiveCompare:Collections Documentation で使用する次のAppleの動作例があります。

sortedArray = [anArray sortedArrayUsingSelector:
                       @selector(localizedCaseInsensitiveCompare:)];

これは、新しいソートされた配列を返すことに注意してください。 NSMutableArrayを所定の場所に並べ替える場合は、代わりに sortUsingSelector: を使用します。

[mutableArray sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

昇順を取得するのは簡単です。以下の手順に従ってください、、、

モデル1:

NSSortDescriptor *sortDesc = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
sortedArray=[yourArray sortedArrayUsingDescriptors:@[sortDesc]];

ソートで大文字と小文字を区別しないようにするには、次のように記述子を設定する必要があります。
モデル2:

NSSortDescriptor * sortDesc = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)]; 
sortedArray=[yourArray sortedArrayUsingDescriptors:@[sortDesc]];
1
Kupendiran iOS

私にとってこれはうまくいった....

areas = [areas sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

ここで、エリアはNSArrayです。私はそれが誰かを助けることを願っています。