gpt4 book ai didi

iphone - 使用自定义类的实例对数组进行排序

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:47 26 4
gpt4 key购买 nike

我有一个数组,其中填充了自定义类的实例,该类包含两个字符串属性,名字和姓氏。两者都有一个 getter 方法,它等于属性本身的名称。还有一种检索人全名的方法,称为“getFullName”。考虑以下示例。

 CustomClass *person = [[CustomClass alloc] ...];
person.firstname // Returns "Thomas"
person.lastname // Returns "Meier"
[person getFullName] // Returns "Thomas Meier"

现在我想按全名降序排列这个数组。我一直在研究一些数组排序方法,但不太清楚如何去做。我想我必须创建某种比较函数来比较两个元素,但我如何告诉 SDK 将哪些值传递给此方法以及我应该将它放在哪里(在自定义类中或在发生排序的类中?)。也许还有另一种/更好的方法来解决这个问题?诚然,我几乎没有排序数组的经验。

非常感谢您的帮助!

附言。代码应在 iOS 3.2 上运行

最佳答案

有几种方法可以做到这一点。一种是在自定义类上放一个比较方法。称它为 -compare: 或类似的名称。该方法应将具有相同自定义类型的另一个对象作为其输入。它应该返回 NSOrderedAscendingNSOrderedDescendingNSOrderedSame,具体取决于比较的结果。 (在此比较函数中,您可以查看自己的全名与传入对象的全名。)

然后你可以使用NSMutableArray-sortUsingSelector:方法,像这样:

[myArray sortUsingSelector:@selector(compare:)];

这适用于所有版本的 iOS。 4.0+ 中提供了 block 比较方法。

关于iphone - 使用自定义类的实例对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3326403/

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