2011-02-07 10 views
0

私は名前と値という2つのキーからなる一連の辞書を含む配列を持っています。辞書と外国文字を含む配列を並べ替える?

辞書の名前キーに基づいて配列をソートしようとしていますが、辞書には間違った順序で表示されるデンマーク語の文字が含まれています(fx 'aåb c'、 'abc ..å ') - これをデンマーク語の文字で正しくソートするにはどうすればよいですか?

NSSortDescriptor *nameSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
self.cityOptionsArray = (NSMutableArray *)[tempCityArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:nameSortDescriptor]]; 

答えて

1

NSSortDescriptorあなたはそれが作用するオブジェクトのカスタム比較・メソッドを呼び出すことができます初期化子を持っています。

あなたのケースでは(あなたのキーがNSStringsなので)localizedCompare:を使用します。

あなたはこのようにそれを使用することができます:

NSSortdescriptor *nameSortDescriptor = [[NSSortDescriptor alloc] 
      initWithKey:@"name" 
      ascending:YES 
      selector:@selector(localizedCompare:)]; 

は、あなたがそれで終わった後、それを解放することを忘れないでください。

Sort Descriptor Programming Topicsを参照してください。

+0

ありがとう:)そして私はそれをリリースしました - それは私のファイルから小さなスニペットでした:) – Milk78

+0

この回答は私のためにも働く。私はNSMutableDictionariesの配列を配列として持っていて、initWithKeyを使ってどのキーを参照するかを選択します。それは文字を含むString型のオブジェクトを注文するために働くことに注意してください。しかしNSNumberのようなNSNumberのような数字だけを含むStringsではNSString形式には適していません。 – doruvil

関連する問題