私は辞書の配列を持っています..このように見えます。
(
{name = somename;
date = NSDate;
other_params = some other params;
},
...
)
次に、配列アイテムをNSDateで並べ替えるにはどうすればよいですか(古いものから新しいものへ、またはその逆)。基本的な選択ソートアルゴリズムを実行するだけですか、それとももっと短い方法がありますか?
私は辞書の配列を持っています..このように見えます。
(
{name = somename;
date = NSDate;
other_params = some other params;
},
...
)
次に、配列アイテムをNSDateで並べ替えるにはどうすればよいですか(古いものから新しいものへ、またはその逆)。基本的な選択ソートアルゴリズムを実行するだけですか、それとももっと短い方法がありますか?
記述子またはコンパレータを使用して、より快適に感じるものなら何でも配列をソートできます。コンパレータの使用例を次に示します。
NSArray *sortedArray = [myArray sortedArrayUsingComparator: ^(id obj1, id obj2) {
return [[obj1 date] compare:[obj2 date]];
}];
記述子の並べ替えオプションは次のとおりです。
// Adjust the 'ascending' option to invert the sort order.
NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES];
// The sort descriptors have to go into an array.
NSArray *sortDescriptors = [NSArray arrayWithObject:dateSortDescriptor];
NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:sortDescriptors];
NSMutableArray
を使用していて、元の順序を維持する必要がない場合は、その場で並べ替えることもできます。