NSArrayのソート方法 (NSSortDescriptorを使って)

NSArrayのソート方法は色々あるんですけど、その中でNSSortDescriptorを使った方法をメモっておきます。
この方法はオブジェクトのプロパティ値の単純比較でソート出来る時に有効ですよ。

プロパティに「ValA」「ValB」があるオブジェクトを、ValAの昇順+ValBの降順でソートするサンプルです。


NSSortDescriptor* sortA = [[[NSSortDescriptor alloc]initWithKey:@"ValA" ascending:YES]autorelease];
NSSortDescriptor* sortB = [[[NSSortDescriptor alloc]initWithKey:@"ValB" ascending:NO]autorelease];

[_dataArray sortUsingDescriptors:@[sortA, sortB]];

※@[ A , B ] の記述はNSArrayを作成する記述です

この例のように “sortUsingDescriptors:” を使った場合にはレシーバー内の要素がソートされますし、”sortedArrayUsingDescriptors:” を使えばソート済のNSArrayが返されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です