how can I sort NSMutableDictionary with keys value?

我与影子孤独终老i 提交于 2019-11-27 14:59:10

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!