获取NSDictionary键,按其各自的值按升序排序



我正在尝试按照Getting NSDictionary keys sorted by their各自的值对NSDictionary。比较器块是否按NSDictionary中值的升序或降序对键进行排序?我想按照值的升序显示键。换句话说,比较器块的排序操作是按升序还是降序进行的?非常感谢。

在此代码中按升序排列:

myArray = [myDict keysSortedByValueUsingComparator: ^(id obj1, id obj2) {
     if ([obj1 integerValue] > [obj2 integerValue]) {
          return (NSComparisonResult)NSOrderedDescending;
     }
     if ([obj1 integerValue] < [obj2 integerValue]) {
          return (NSComparisonResult)NSOrderedAscending;
     }
     return (NSComparisonResult)NSOrderedSame;
}];

按降序切换:

return (NSComparisonResult)NSOrderedDescending;

return (NSComparisonResult)NSOrderedAscending;

生成的数组将按升序排列,其中升序由比较器的行为决定。(也就是说,这可能与普通观察者所期望的不同。)

比较器接收两个对象,通常称为obj1obj2。如果它为给定的一对对象返回NSOrderedAscending,那么在结果数组中,obj1将在obj2之前排序。如果它返回NSOrderedDescending,则obj2将在obj1之前被排序。如果返回NSOrderedSame,则obj1obj2在结果数组中具有任意相对顺序。

顺便说一下,一个简单的测试程序本可以给你答案。

最新更新