gpt4 book ai didi

ios - 排序数组中的 sortedArrayUsingComparator 包含具有 2 个数字的对象

转载 作者:可可西里 更新时间:2023-11-01 06:18:46 25 4
gpt4 key购买 nike

我正在尝试使用 api sortedArrayUsingComparator 对具有 2 个数字的对象进行排序

array1= [array sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

person *p1 = (person*)obj1;
person *p2 = (person*)obj2;

if (p1.value>p2.value && p1.age>p2.age)
{
return (NSComparisonResult)NSOrderedAscending;
}
else
return (NSComparisonResult)NSOrderedDescending;
}];

我想编写代码来对这样的东西进行排序,,,,

input : 0  1
1 2
0 9
1 4
2 3

output: 0 1
0 9
1 2
1 4
2 3

最佳答案

  1. 请不要将id 转换为person *id 类型与任何 Objective-C 对象类型隐式兼容,因此转换没有用,只会降低可读性。

  2. 此外,类名应以大写字母开头。最好将您的类(class)命名为 Person,而不是 person

  3. 实际问题有点类似于字典排序:


NSArray *sorted = [unsorted sortedArrayUsingComparator:^NSComparisonResult(id lhs, id rhs) {
Person *p1 = lhs, *p2 = rhs;

if (p1.value > p2.value) {
return NSOrderedAscending;
} else if (p1.value < p2.value) {
return NSOrderedDescending;
} else {
if (p1.age > p2.age)
return NSOrderedAscending;
else if (p1.age < p2.age)
return NSOrderedDescending;
else
return NSOrderedSame;
}
}];

关于ios - 排序数组中的 sortedArrayUsingComparator 包含具有 2 个数字的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18575847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com