NSArray *myKeys = [mDict allKeys];
NSArray *sortedKeys = [myKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSMutableArray *sortedValues = [[[NSMutableArray alloc] init] autorelease];
for(id key in sortedKeys) {
id object = [mDict objectForKey:key];
[sortedValues addObject:object];
}
NSMutableDictionary 是不可以排序的,所以可以通过先对KEY排序,之后再对关于NSMutableDictionary排序
Another example
{
"100" => (id)object,
"20" => (id)object,
"10" => (id)object,
"1000" => (id)object,
}
{
"10" => (id)object,
"20" => (id)object,
"100" => (id)object,
"1000" => (id)object,
}
NSInteger floatSort(id num1, id num2, void *context)
{
float v1 = [num1 floatValue];
float v2 = [num2 floatValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return NSOrderedDescending;
else
return NSOrderedSame;
}
NSArray *allKeys = [aDictionary allKeys];
NSArray *sortedKeys = [allKeys sortedArrayUsingFunction:floatSort context:NULL];
for (id key in sortedKeys)
id val = [aDictionary objectForKey:key];
…