2013-08-07 41 views
0

,所以我有一個字符串(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" 
) 

當您在之前和之後看到「排序」 array..they're沒有妥善安排。爲什麼不?我個人無法看到代碼有任何問題。

+3

的日期格式年是'yyyy'(小寫)。 –

+0

'dateFromString:(NSString *)a'應該是'dateFromString:a'。類型'id'是Objective-C的'void *'。 – 2013-08-07 11:39:02

+0

ID不是無效的。 id是一個指向任何對象的通用指針 – skytz

回答

0

看起來不正確的格式。嘗試這個。

[formatter setDateFormat:@"MMMM yyyy"]; 

@ 「YYYY」 是基於週日歷年。

@「yyyy」是普通日曆年。

參考here更多解釋

+0

yea ..我在Martin R的回覆中看到了它。 – skytz

+0

對你有好處!希望有所幫助 – Tala