gpt4 book ai didi

ios - 对自定义对象数组中的数字进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:25:15 27 4
gpt4 key购买 nike

我试过了 this , thisthis链接

我有一个数组 (Say personObjectArray),其中包含 Person 类的对象。

Class Person 有 2 个变量说,NSString *name, NSString *age.

这里 age 的类型是 nsstring。

现在当我像下面这样排序时,

personObjectArray = [[personObjectArray sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2){

return [p1.age compare:p2.age];

}] mutableCopy];

排序是这样的,

1,11、1232、23、3 ...它像字母顺序一样排序,而不是将其视为数字。

所以我这样修改我的代码,

personObjectArray = [[personObjectArray sortedArrayUsingComparator:^NSComparisonResult(Person *p1, Person *p2){

return [[p1.age intValue] compare:[p2.age intValue] ];

}] mutableCopy];

它说,Bad receiver type 'int'

我现在如何排序?请不要告诉我更改 Person 类中 age 的数据类型。我无法改变它。任何帮助表示赞赏(:,谢谢你的时间。

最佳答案

您在原始(非对象)类型 int 上使用比较,因此它不会工作。

试试这个

 return [@([p1.age intValue]) compare:@([p2.age intValue])];

在这里,我们使用 NSNumber(它是一个对象类型)来比较 int 值

@() is a NSNumber's literal

希望这对你有帮助.. (:

关于ios - 对自定义对象数组中的数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42696583/

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