我有一个NSMutableDictionary
,它包含联系人名称(NSString
's)和日期(NSDate
's)。名字是keys
。 如何按创建日期对名称进行排序?如何通过NSDate对NSMutableDictionary中的“key”和“value”进行排序?
我假设我必须创建日期的NSMutableArray
,然后以某种方式对其进行排序。 但是,如何获取日期的名称?我甚至可以对NSDate
进行排序?
谢谢!
我有一个NSMutableDictionary
,它包含联系人名称(NSString
's)和日期(NSDate
's)。名字是keys
。 如何按创建日期对名称进行排序?如何通过NSDate对NSMutableDictionary中的“key”和“value”进行排序?
我假设我必须创建日期的NSMutableArray
,然后以某种方式对其进行排序。 但是,如何获取日期的名称?我甚至可以对NSDate
进行排序?
谢谢!
您可以使用[myDictionary keysSortedByValueUsingSelector:@selector(compare:)];
尝试下面的代码,如果字典中包含的NSString日期格式:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"your date format"];
NSArray *sortedKeys = [yourDictionary keysSortedByValueUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2)
{
NSDate *date1 = [dateFormatter dateFromString:obj1];
NSDate *date2 = [dateFormatter dateFromString:obj2];
return [date1 compare:date2];
}];
该又如sortedKeys将包含排序的名字。
如果字典包含实际的NSDate对象,则:
NSArray *sortedKeys = [yourDictionary keysSortedByValueUsingComparator:^NSComparisonResult(NSDate *obj1, NSDate *obj2)
{
return [obj1 compare:obj2];
}];
也许这可以帮助:http://stackoverflow.com/a/7628808/1758762 – duDE
您不能对一个NSDictionary。您必须将内容复制到NSArray或其他类似的东西来对它们进行排序。 –
[按数值排序的NSDictionary键](http://stackoverflow.com/questions/1620001/nsdictionary-keys-sorted-by-value-numerically)将提供解决方案。 –