how can I sort NSMutableDictionary with keys value?

后端 未结 3 1758
深忆病人
深忆病人 2020-12-15 10:03

I have a NSMutableDictionary with string keys and every key has its own array. I want to re-sort the dictionary with keys value alphabetically. How can I do thi

相关标签:
3条回答
  • 2020-12-15 10:17

    A dictionary is unsorted by definition.

    For iterating over the keys in a specific order, you can sort an array containing the keys of the dictionary.

    NSArray *keys = [theDictionary allKeys];
    NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compareMethod:)];
    

    There are several other sorted... methods, e.g. sorting with a NSComparator. Have a look here.

    0 讨论(0)
  • Use this one

    NSArray *myKeys = [Dict allKeys];
    NSArray *sortedKeys = [myKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
    NSMutableArray *sortedValues = [[[NSMutableArray alloc] init] autorelease];
    
    for(id key in sortedKeys) {
        id object = [Dict objectForKey:key];
        [sortedValues addObject:object];
    }
    
    0 讨论(0)
  • 2020-12-15 10:24
    NSDictionary *yourDictionary;
    NSArray *sortedKeys = [yourDictionary.allKeys sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]];
    NSArray *sortedValues = [yourDictionary objectsForKeys:sortedKeys notFoundMarker:@""];
    
    0 讨论(0)
提交回复
热议问题