使用块排序数组不会返回正确的结果

时间:2013-08-07 11:34:47

标签: ios objective-c

所以我有一个字符串数组(monthsArray),如下所示:

months array before :(
"November 2012",
"January 2013",
"September 2013",
"December 2012",
"August 2013"
)

我使用它来对它进行排序:

NSDateFormatter * formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MMMM YYYY"];

monthsArray = [NSMutableArray arrayWithArray:[tempMonthsArray sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {

    NSTimeInterval firstTime=[[formatter dateFromString:(NSString*)a]timeIntervalSince1970];
    NSTimeInterval secondTime=[[formatter dateFromString:(NSString*)b]timeIntervalSince1970];

    return [[NSNumber numberWithDouble:firstTime]compare:[NSNumber numberWithDouble:secondTime]];
    }]];

在我对其进行排序后,它看起来像这样:

months array after :(
"November 2012",
"December 2012",
"January 2013",
"September 2013",
"August 2013"
)

正如你在'sort'数组之前和之后看到的那样......它们没有正确排列。为什么不?我个人无法看到代码有任何问题。

1 个答案:

答案 0 :(得分:0)

看起来格式不正确。试试这个。

[formatter setDateFormat:@"MMMM yyyy"];
  

@“YYYY”是基于周的日历年。

     

@“yyyy”是普通日历年。

有关详细说明,请参阅here