基本上我有一个带有键和值的 NSDictionary 。
键都是数字,但目前它们是字符串。
我希望能够将它们作为数字进行比较以便对它们进行排序。
例如:如果我有这样的字典:
{
"100" => (id)object,
"20" => (id)object,
"10" => (id)object,
"1000" => (id)object,
}
我希望能够像这样排序:
{
"10" => (id)object,
"20" => (id)object,
"100" => (id)object,
"1000" => (id)object,
}
有任何想法吗?
Thanks
Tom
不确定你在做什么——字典本质上是未排序的,默认实现中没有稳定的键排序。如果你想通过排序键遍历值,你可以这样做:
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];
…
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)