1

你好,我想对数组从最旧到最晚进行排序。它非常适合小数据。但是当数据很大时,没有得到完美的排序数组。

这是我的代码

  -(NSMutableArray *)sortArrayOldestTonewest:(NSMutableArray *)arr{

    NSArray *sortedArray;

    NSMutableArray *arrResponse=[NSMutableArray arrayWithArray:arr];

    sortedArray = [arrResponse sortedArrayUsingComparator:^(id a,id b) {
        NSString *str1 = [a valueForKey:@"CardExpiryDate"];
        NSString *str2 = [b valueForKey:@"CardExpiryDate"];

        NSDate *date1=[Utility dateFromString:str1 withFormat:@"dd/mm/yyyy"];
        NSDate *date2=[Utility dateFromString:str2 withFormat:@"dd/mm/yyyy"];

        return [date1 compare:date2];

    }];

    NSMutableArray  *arrResult=[[NSMutableArray alloc]initWithArray:sortedArray];
    return arrResult
    ;

}

我做错了什么。请帮忙。

4

1 回答 1

2

您的日期格式错误,应该是@"dd/MM/yyyy".

“MM”代表月份,“mm”代表分钟。您的结果对于小型数据集是正确的,这纯属巧合。

于 2013-09-20T09:27:02.943 回答