【发布时间】:2015-12-14 06:25:52
【问题描述】:
我有一个名为 LogDateMsg 的 NSMutableDictionary。在这本字典中,我将 NSDate 对象存储为键为 long 类型的值。
我需要根据键的日期值按降序对键进行排序。我正在使用下面的代码
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"d.M.yyyy kk:mm:ss"];
NSArray *currKeys = [LogDateMsg keysSortedByValueUsingComparator:^NSComparisonResult(id a, id b) {
NSString* first = (NSString*)a;
NSString* second = (NSString*)b;
NSDate* d1=[formatter dateFromString:first];
NSDate* d2=[formatter dateFromString:second];
return [d2 compare:d1];
}];
但是,以上并没有给我所需的结果。
上面的代码有问题还是有更好的方法来执行我想要的?
提前致谢!
【问题讨论】:
-
@ShamasS,我已经看到了那个答案,但我的问题不同。这是我正在尝试排序的 NSMutableDictionary。
-
您能否显示一个您作为键的示例日期字符串。此外,您不能将长值直接存储在字典中,因为字典只能保存对象。 Long 是一种原始类型。您必须先将其包装为 NSNumber 才能使其成为对象。
-
@paranoidcoder,我的示例键是这样的:
Before sort currKeys:( 1189641421, 1350490027, 1102520059, 1681692777, 1649760492, 1967513926, 1714636915, 1957747793, 1804289383, 2044897763 ) -
@paranoidcoder,值为:
before sort currvalues:( "Mon Dec 14 11:34:15 2015", "Mon Dec 14 11:34:15 2015", "Mon Dec 14 11:34:14 2015", "Mon Dec 14 11:34:14 2015", "Mon Dec 14 11:34:16 2015", "Mon Dec 14 11:34:16 2015", "Mon Dec 14 11:34:14 2015", "Mon Dec 14 11:34:15 2015", "Mon Dec 14 11:34:14 2015", "Mon Dec 14 11:34:15 2015" )
标签: ios objective-c nsmutabledictionary