我正在尝试按照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;
生成的数组将按升序排列,其中升序由比较器的行为决定。(也就是说,这可能与普通观察者所期望的不同。)
比较器接收两个对象,通常称为obj1
和obj2
。如果它为给定的一对对象返回NSOrderedAscending
,那么在结果数组中,obj1
将在obj2
之前排序。如果它返回NSOrderedDescending
,则obj2
将在obj1
之前被排序。如果返回NSOrderedSame
,则obj1
和obj2
在结果数组中具有任意相对顺序。
顺便说一下,一个简单的测试程序本可以给你答案。