2011-06-11 17 views

答えて

128

Collections DocumentationsortedArrayUsingSelector:localizedCaseInsensitiveCompare:を使用して、以下のAppleの実施例があります:これは新しいソートされた配列を返すこと

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

注意。あなたの場所であなたのNSMutableArrayをソートしたい場合には、そのように、代わりにsortUsingSelector:を使用します。

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

はここスウィフトの更新された答えです:

助けを借りて、スウィフトに行うことができますソート
  • 閉鎖のこれを容易にする方法には、sortsortedがあります。

    var unsortedArray = [ "H", "ello", "Wo", "rl", "d"] 
    var sortedArray = unsortedArray.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrderedAscending } 
    

    注:ここでsortedはソートされた配列を返します。 unsortedArray自体はソートされません。あなたはunsortedArray自体をソートしたい場合は

  • 、この

    ​​


リファレンスを使用します。

  • Hereはスウィフトのソートメソッドのドキュメントです。

  • 異なるドキュメントString比較方法here


オプション:代わりにlocalizedCaseInsensitiveCompareを使用しての

、これも行うことができます。

stringArray.sort{ $0.lowercaseString < $1.lowercaseString } 

あるいは

stringArray.sort{ $0 < $1 } 

Iあなたは、これが働いていた私にとっては、大文字と小文字を区別比較

+0

ありがとう、 '.lowercaseString'は、オブジェクトをタイトルと比較するときに私の仕事をしました。 'mediaItems = mediaItems.sorted {$ 0.media.title.lowercaseString> $ 1.media.title.lowercaseString}' –

0

をしたい....

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

ここのエリアfをすることはNSArrayです。私はそれが誰かを助けることを望む。

1

昇順を取得するのは簡単です。怒鳴るの手順に従ってください,,,

モデル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]]; 
関連する問題