Ios NSMutableDictionary对键中的值进行排序

Ios NSMutableDictionary对键中的值进行排序,ios,dictionary,nsdictionary,nsmutabledictionary,Ios,Dictionary,Nsdictionary,Nsmutabledictionary,我有一本NSMutableDictionary: NSMutableDictionary = { "03-19" = ( "Movie1", "Movie2", "Movie3" ); "03-20" = ( "Movie1" ); "03-21" = ( "Movie1", "Movie2"

我有一本NSMutableDictionary:

NSMutableDictionary = {
    "03-19" = (
            "Movie1", 
            "Movie2", 
            "Movie3"
        );
    "03-20" = (
            "Movie1"
        );
    "03-21" = (
            "Movie1", 
            "Movie2"
        );
}
电影对象具有时间值。我需要按Movie.timeString对每个键的值进行排序。我应该怎么做?

这里有一个选项:

   NSMutableDictionary *myNewDic = [NSMutableDictionary dictionary];
   for (NSString *key in [myDictionary allKeys]) {
       [myNewDic setObject:[[myDictionary objectForKey:key] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] forKey:key];
   }

您的myNewDic就是您所需要的。

值键对在NSDictionaryNSMutableDictionary中存储时没有特定顺序

您可以通过迭代每个键来重新编写代码, 然后对这些值进行迭代排序(我想存储为NSArray/NSMutableArray对象)。 假设它确实是一个NSMutableDictionary*dict

for(NSString *key in [dict allKeys])
{
NSArray *arrTimes = [dict objectForKey:key];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm a"];

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

[dict setObject:arrSortedTimes forKey:key];
}

您可以尝试这段代码,如果有任何问题,请告诉我。

如果我的值中有NSObjects。我需要根据这些对象的时间值对字典进行排序,所以您需要提供自己的自定义比较方法。看到这个了吗-
NSDictionary *dictionary = @{@"1": @"some value 1",
                             @"5": @"some value 5",
                             @"2" : @"some value 2"};
NSArray *sortedKeys = [dictionary keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    return [obj1 compare:obj2 options:0];
}];
NSDictionary *sorted = [NSDictionary dictionaryWithObjects:[dictionary objectsForKeys:sortedKeys notFoundMarker:@""] forKeys:sortedKeys];