Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取按各自值升序排序的NSDictionary键_Ios_Objective C_Sorting - Fatal编程技术网

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

Ios 获取按各自值升序排序的NSDictionary键,ios,objective-c,sorting,Ios,Objective C,Sorting,我正试图按照上的建议对我的词典进行分类。比较器块是否按照NSDictionary中值的升序或降序对键进行排序?我想按照值的升序显示键。换句话说,比较器块执行的排序操作是升序还是降序? 谢谢。生成的数组将按升序排列,升序由比较器的行为决定。(也就是说,它可能不同于一个偶然的观察者所期望的。) 比较器接收两个对象,通常称为obj1和obj2。如果它为给定的一对对象返回sensorderedasensing,则结果数组中的obj1将在obj2之前排序。如果返回传感器解除搜索,则obj2将在obj1之前

我正试图按照上的建议对我的词典进行分类。比较器块是否按照NSDictionary中值的升序或降序对键进行排序?我想按照值的升序显示键。换句话说,比较器块执行的排序操作是升序还是降序?
谢谢。

生成的数组将按升序排列,升序由比较器的行为决定。(也就是说,它可能不同于一个偶然的观察者所期望的。)

比较器接收两个对象,通常称为
obj1
obj2
。如果它为给定的一对对象返回
sensorderedasensing
,则结果数组中的
obj1
将在
obj2
之前排序。如果返回
传感器解除搜索
,则
obj2
将在
obj1
之前排序。如果它返回
onsorderedsame
,则
obj1
obj2
将在结果数组中具有任意相对顺序


顺便说一句,一个简单的测试程序可能已经给出了答案。

结果数组将按升序排列,升序由比较器的行为决定。(也就是说,它可能不同于一个偶然的观察者所期望的。)

比较器接收两个对象,通常称为
obj1
obj2
。如果它为给定的一对对象返回
sensorderedasensing
,则结果数组中的
obj1
将在
obj2
之前排序。如果返回
传感器解除搜索
,则
obj2
将在
obj1
之前排序。如果它返回
onsorderedsame
,则
obj1
obj2
将在结果数组中具有任意相对顺序


顺便说一句,一个简单的测试程序可能已经给了你答案。

在这段代码中,按升序排列:

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;
}];


在此代码中,按升序排列:

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;
}];

请注意,您无法对实际字典条目进行排序。字典条目(由字典上的
for
循环返回)的顺序不确定。请注意,您无法对实际的字典条目进行排序。字典条目(由字典上的
循环的
返回)的顺序不确定。
return (NSComparisonResult)NSOrderedAscending;