如何排序NSMutableArray的NSMutableDictionary?

时间:2010-05-13 15:55:05

标签: cocoa sorting nsmutablearray nsmutabledictionary

我有NSMutableDictionary的NSMutableArray(NSString对象)。 NSString对象之一实际上是一个日期,我需要根据该日期对NSMutableArray进行排序,我不希望它将日期排序为字符串。我该怎么做?

2 个答案:

答案 0 :(得分: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];
}];

答案 1 :(得分: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];

注意:未经过测试。