我有一個NSMutableDictionary
,它包含聯繫人名稱(NSString
's)和日期(NSDate
's)。名字是keys
。 如何按創建日期對名稱進行排序?如何通過NSDate對NSMutableDictionary中的「key」和「value」進行排序?
我假設我必須創建日期的NSMutableArray
,然後以某種方式對其進行排序。 但是,如何獲取日期的名稱?我甚至可以對NSDate
進行排序?
謝謝!
我有一個NSMutableDictionary
,它包含聯繫人名稱(NSString
's)和日期(NSDate
's)。名字是keys
。 如何按創建日期對名稱進行排序?如何通過NSDate對NSMutableDictionary中的「key」和「value」進行排序?
我假設我必須創建日期的NSMutableArray
,然後以某種方式對其進行排序。 但是,如何獲取日期的名稱?我甚至可以對NSDate
進行排序?
謝謝!
您可以使用[myDictionary keysSortedByValueUsingSelector:@selector(compare:)];
嘗試下面的代碼,如果字典中包含的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];
}];
也許這可以幫助:http://stackoverflow.com/a/7628808/1758762 – duDE
您不能對一個NSDictionary。您必須將內容複製到NSArray或其他類似的東西來對它們進行排序。 –
[按數值排序的NSDictionary鍵](http://stackoverflow.com/questions/1620001/nsdictionary-keys-sorted-by-value-numerically)將提供解決方案。 –