黑马程序员技术交流社区

标题: 我想问一下字典的排序怎么弄啊我找了半天也... [打印本页]

作者: 15175521736    时间: 2014-12-30 22:10
标题: 我想问一下字典的排序怎么弄啊我找了半天也...
求大神指导啊???

作者: frozen    时间: 2014-12-30 22:10
字典本来就无序,如何排序? 只能借助数组来存储key,给key排序这样打印的时候,用key获取字典obj,这样能达到有序
作者: 枫煠    时间: 2014-12-31 15:02
本帖最后由 枫煠 于 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


作者: zhaojiajun    时间: 2014-12-31 15:35
楼上说的是那么回事啊
作者: 18942668193    时间: 2015-1-29 21:23
没有明白
作者: 恋梦    时间: 2015-1-31 23:51
四楼正解,字典本无序,都是随机的,要排序也只有用oc数组,但那个跟正常排序也有着天壤之别。
作者: zzyyzz1992    时间: 2015-3-5 14:29
字典我一般不排序,直接这样
for i in 0...10 {
  dic.objectForKey(i)
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2