Objective-Csortingstringdate数组

我有一个由date组成的数组,但是作为NSString 。 如何降序sorting?

编辑:我结束了调整我的代码使用NSDate作为使用其他方法不会在我的情况下工作

你可以使用sortedArrayUsingFunction ,考虑下面的例子

 NSString *str1 = @"03-07-2012"; NSString *str2 = @"01-07-2012"; NSString *str3 = @"02-07-2012"; NSArray *arr = [NSArray arrayWithObjects:str1, str2, str3, nil]; arr = [arr sortedArrayUsingFunction:dateSort context:nil]; //The date sort function NSComparisonResult dateSort(NSString *s1, NSString *s2, void *context) { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"dd-MM-yyyy"]; NSDate *d1 = [formatter dateFromString:s1]; NSDate *d2 = [formatter dateFromString:s2]; return [d1 compare:d2]; // ascending order return [d2 compare:d1]; // descending order } 

隐藏NSString的date到NSDate对象,并根据datesorting数组

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss ZZZ"]; NSDate *date = [dateFormatter dateFromString:dateStr]; NSComparisonResult dateSort(NSString *s1, NSString *s2, void *context) { NSDate *d1 = [NSDate dateWithString:s1]; NSDate *d2 = [NSDate dateWithString:s2]; return [d1 compare:d2]; } NSArray *sorted = [unsorted sortedArrayUsingFunction:dateSort context:nil];