NSMutableDictionary(NSString オブジェクト) の NSMutableArray があります。NSString オブジェクトの 1 つは実際には日付であり、その日付に基づいて NSMutableArray を並べ替える必要があり、日付を文字列として並べ替えたくありません。どうすれば作れますか?
3876 次
2 に答える
6
私が正しく理解している場合、配列には文字列を含む辞書が含まれており、それらの文字列を日付として並べ替えたいと考えています。おそらくこのようなもの:
[someArray sortWithOptions: 0 usingComparator: ^(id inObj1, id inObj2) {
NSDate *date1 = [NSDate dateWithString: [inObj1 objectForKey: @"dateString"]];
NSDate *date2 = [NSDate dateWithString: [inObj2 objectForKey: @"dateString"]];
return [date1 compare: date2];
}];
于 2010-05-13T18:50:45.703 に答える
1
sortedArrayUsingFunction:context:メソッドを使用する必要があります。例えば:
NSInteger comparator( NSDictionary *d1, NSDictionary *d2, void *context )
{
return [[d1 objectForKey:@"date"] compare:[d2 objectForKey:@"date"]];
}
// In some method:
NSArray *sortedArray = [array sortedArrayUsingFunction:comparator context:nil];
注: これはテストされていません。
于 2010-05-13T16:05:19.660 に答える