Objective-C排序字符串日期数组

Moh*_*rei 4 iphone cocoa-touch objective-c ipad ios

我有一个由日期组成的数组,但是NSString.我该如何降序排序?

编辑:我通过调整我的代码使用NSDate结束,因为使用其他方法将不适用于我的情况

Oma*_*ith 11

你可以使用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
}
Run Code Online (Sandbox Code Playgroud)