gpt4 book ai didi

ios - 使用对象属性按公式对 NSArray 进行排序

转载 作者:行者123 更新时间:2023-11-28 21:58:38 25 4
gpt4 key购买 nike

我在这里看到了很多关于对 NSArray 进行排序的问题,尤其是那些充满自定义对象的问题,但它似乎总是归结为人们排序所依据的特定属性或值.按姓名排序、按年龄排序、按日期排序等。

但是否可以通过使用对象属性的公式对 NSArray 进行排序,而不是仅通过单个属性?例如,如果我有一个自定义类...

@interface SYSprocket : NSObject

@property int numberOfDoodads;
@property int widthOfWidgets;

和输入变量(int)extraNumber,是否可以通过公式SYSprocketNSArray进行排序(numberOfDoodads/widthOfWidgets) + extraNumber?

我的数组不是那么大,所以如果需要我可以遍历它们,但这似乎不是不可能的事情,对吧?还是我错了?

最佳答案

如果您想使用自定义逻辑进行排序,您可以在 NSArray 上使用 - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr 方法,该方法采用带有排序逻辑的 block 并返回一个排序数组。

示例:

sortedArray = [arrayWithObjects sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

// cast obj1, obj2 to appropriate classes
// use if/else to do the comparision
// return NSOrderedSame / NSOrderedAscending / NSOrderedDescending

}];

关于ios - 使用对象属性按公式对 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25737159/

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