如何按日期获得asccending order项目?

Gab*_*cal 2 date objective-c ios

我有一本包含很多项目的字典.我希望按日期订购升序商品.我的日期格式是:2015年6月10日09:27:11

我尝试了这段代码,但没有用:aux是我的数组,包含日期组件.

for (int i=0; i<aux.count-1; i++) {
            for (int j=i+1; j<aux.count; j++) {
                NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
                [dateFormat setDateFormat:@"dd-MM-yyyy hh:mm:ss"];
                NSDate *date1 = [dateFormat dateFromString:[aux objectAtIndex:i]];
                NSDate *date2 = [dateFormat dateFromString:[aux objectAtIndex:j]];

                NSComparisonResult comparisonResult = [date1 compare:date2];
                if (comparisonResult==-1) {
                    NSString *var= [aux objectAtIndex:i];
                    [aux replaceObjectAtIndex:i withObject:[aux objectAtIndex:j]];
                    [aux replaceObjectAtIndex:j withObject:var];

                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

我想比较两个日期(date1,date2).如果date2比date1更大,我想要交换.交换我想手动使它如此:如果date2更大我想要采取一个true1从方法.

joh*_*gan 5

让我们NSMutableArray使用其中一种排序方法处理排序(例如sortUsingComparator:):

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MMM-yyyy HH:mm:ss"];

[aux sortUsingComparator:^NSComparisonResult(NSString *datestring1, NSString *datestring2) {
    NSDate *date1 = [dateFormatter dateFromString:datestring1];
    NSDate *date2 = [dateFormatter dateFromString:datestring2];
    return [date1 compare:date2];
}];
Run Code Online (Sandbox Code Playgroud)

SIDENOTE:你还应该考虑将日期字符串转换为NSDates 只一次,并将它们作为NSDates 存储在数组中.