NSDictionary keys sorted by value numerically
cocoa-touch, nsdictionary, objective-c, sorting
Solution
how about using keysSortedByValueUsingSelector (NSDictionary)
Seems to be what you need as per the documentation in XCode
Problem
I store names as keys and scores as values into an `NSDictionary` for saving in `NSUserDefaults`. I then want to get back the keys sorted by score, but I can't seem to sort them numerically, only by string. The list of scores 100, 50, 300, 200, 500, for example, gives me 100, 200, 300, 50, 500. Can this be done or do I need to go about this differently? ``` NSString *defaultNames[] = {@"Matt", @"Terry",@"Jessica",@"Sean",nil}; NSNumber *defaultScores[] = {@"600", @"500",@"100",@"50", nil}; NSDictionary *newScoreDict = [NSDictionary dictionaryWithObjects:(id *)defaultScores forKeys:(id *)defaultNames count:7]; NSArray *currScores = [scoreDict keysSortedByValueUsingSelector:@selector(compare:)]; ```