我有一个字典数组。在每个字典中,都有一个键dateOfInfo
(一个NSDate
)和其他几个内容。我想按每个字典的dateOfInfo
对数组进行排序,并使最新的字典成为第一个结果。
我该怎么做?
我有一个字典数组。在每个字典中,都有一个键dateOfInfo
(一个NSDate
)和其他几个内容。我想按每个字典的dateOfInfo
对数组进行排序,并使最新的字典成为第一个结果。
我该怎么做?
您可以使用NSSortDescription
进行排序,例如:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey: @"dateOfInfo" ascending: NO];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
[sortDescriptor release];
你还可以使用这个方法
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id, id, void *))comparator context:(void *)context
NSArray
拥有许多强大的内置排序功能,没有必要手动实现。 - jlehr试试这样写:
NSDateFormatter *fmtDate = [[NSDateFormatter alloc] init];
[fmtDate setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSComparator compareDates = ^(id string1, id string2)
{
NSDate *date1 = [fmtDate dateFromString:string1];
NSDate *date2 = [fmtDate dateFromString:string2];
return [date1 compare:date2];
};
NSSortDescriptor * sortDesc1 = [[NSSortDescriptor alloc] initWithKey:@"StartTime" ascending:YES comparator:compareDates];
[youArray sortUsingDescriptors:@[sortDesc1]];