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