sort NSDictionary values by key alphabetical order

johnbakers picture johnbakers · Sep 30, 2011 · Viewed 28.8k times · Source

I can get an array of dictionary keys sorted by values, but how to I get an array of values sorted by dictionary keys? I've been looking everywhere with no luck. Any help appreciated.

Answer

Ashley Mills picture Ashley Mills · Sep 30, 2011

This might work:

NSArray * sortedKeys = [[dict allKeys] sortedArrayUsingSelector: @selector(caseInsensitiveCompare:)];

NSArray * objects = [dict objectsForKeys: sortedKeys notFoundMarker: [NSNull null]];

or in Swift

let objects = dict.keys.sorted().flatMap{ dict[$0] }

or

let objects = dict.sorted{ $0.0 < $1.0 }.map{ $1 }

…and that is why you should start developing in Swift 😄