A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1黑马币
求大神指导啊???

最佳答案

查看完整内容

字典本来就无序,如何排序? 只能借助数组来存储key,给key排序这样打印的时候,用key获取字典obj,这样能达到有序

6 个回复

倒序浏览
字典本来就无序,如何排序? 只能借助数组来存储key,给key排序这样打印的时候,用key获取字典obj,这样能达到有序
回复 使用道具 举报
本帖最后由 枫煠 于 2014-12-31 17:28 编辑

  1. - (NSArray *)keysSortedByValueUsingComparator:(NSComparator)cmptr
复制代码
  1. -(NSArray*) getNumberSortKeys:(NSString*)dicKey isASC:(BOOL)isASC{
  2.     return [self keysSortedByValueUsingComparator: ^(id obj1, id obj2) {
  3.         if ([[obj1 objectForKey:dicKey] intValue] > [[obj2 objectForKey:dicKey] intValue]) {
  4.             return (NSComparisonResult)isASC?NSOrderedAscending:NSOrderedDescending;
  5.         }
  6.         if ([[obj1 objectForKey:dicKey] intValue] < [[obj2 objectForKey:dicKey] intValue]) {
  7.             return (NSComparisonResult)isASC?NSOrderedDescending:NSOrderedAscending;
  8.         }
  9.         return (NSComparisonResult)NSOrderedSame;
  10.     }];
  11. }
复制代码

去抓sort之后的key值的结果,然后再根据键值做一个NSArray出来
我做了一个小Demo你参考看看^^



Sort NSDictionary.zip

50.2 KB, 下载次数: 47

回复 使用道具 举报
楼上说的是那么回事啊
回复 使用道具 举报
没有明白
回复 使用道具 举报
四楼正解,字典本无序,都是随机的,要排序也只有用oc数组,但那个跟正常排序也有着天壤之别。
回复 使用道具 举报
字典我一般不排序,直接这样
for i in 0...10 {
  dic.objectForKey(i)
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马