2013-05-15 51 views
0

我有一個NSMutableDictionary,它包含聯繫人名稱(NSString's)和日期(NSDate's)。名字是keys如何按創建日期對名稱進行排序?如何通過NSDate對NSMutableDictionary中的「key」和「value」進行排序?

我假設我必須創建日期的NSMutableArray,然後以某種方式對其進行排序。 但是,如何獲取日期的名稱?我甚至可以對NSDate進行排序?

謝謝!

+0

也許這可以幫助:http://stackoverflow.com/a/7628808/1758762 – duDE

+1

您不能對一個NSDictionary。您必須將內容複製到NSArray或其他類似的東西來對它們進行排序。 –

+0

[按數值排序的NSDictionary鍵](http://stackoverflow.com/questions/1620001/nsdictionary-keys-sorted-by-value-numerically)將提供解決方案。 –

回答

0

您可以使用[myDictionary keysSortedByValueUsingSelector:@selector(compare:)];

4

嘗試下面的代碼,如果字典中包含的NSString日期格式:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"your date format"]; 

NSArray *sortedKeys = [yourDictionary keysSortedByValueUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) 
{ 
    NSDate *date1 = [dateFormatter dateFromString:obj1]; 
    NSDate *date2 = [dateFormatter dateFromString:obj2]; 
    return [date1 compare:date2]; 
}]; 

該又如sortedKeys將包含排序的名字。

如果字典包含實際的NSDate對象,則:

NSArray *sortedKeys = [yourDictionary keysSortedByValueUsingComparator:^NSComparisonResult(NSDate *obj1, NSDate *obj2) 
{ 
    return [obj1 compare:obj2]; 
}]; 
+0

第二個代碼段工作!太感謝了! –

+0

如果您找到答案,請將其標記爲已接受;) – danypata

+0

Aaa,美麗的投票無投票解釋投票理由。 – danypata

相關問題