问题
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 this?
回答1:
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.
回答2:
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];
}
回答3:
NSDictionary *yourDictionary;
NSArray *sortedKeys = [yourDictionary.allKeys sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]];
NSArray *sortedValues = [yourDictionary objectsForKeys:sortedKeys notFoundMarker:@""];
来源:https://stackoverflow.com/questions/8118932/how-can-i-sort-nsmutabledictionary-with-keys-value