gpt4 book ai didi

iphone - 使用数字字符串对数组进行排序

转载 作者:行者123 更新时间:2023-12-03 19:20:26 26 4
gpt4 key购买 nike

您好,我有一个人数组,我正在尝试使用排序描述符按年龄对他们进行排序。患者中的年龄字段是一个字符串,因此调用时:

ageSorter = [[NSSortDescriptor alloc] initWithKey:@"age" ascending:YES];
[personList sortUsingDescriptors:[NSArray arrayWithObject:ageSorter]];

它对它们进行排序,但 100 首先出现,因为它在比较选项中没有使用 numericSearch。

有没有办法我仍然可以使用描述符进行排序,但也许使用选择器来更改比较字符串的方式?

最佳答案

finderSortWithLocale 方法(这两个方法都取自苹果 api):

int finderSortWithLocale(Person *person1, Person *person2, void *locale)
{
static NSStringCompareOptions comparisonOptions = NSNumericSearch;

NSRange string1Range = NSMakeRange(0, [string1 length]);
NSString *age1 = person1.age;
NSString *age2 = person2.age;
return [age1 compare:age2
options:comparisonOptions
range:string1Range
locale:(NSLocale *)locale];
}

如何调用此方法(编辑:在人员数组上调用该函数):

    NSArray *sortedArray = [personList sortedArrayUsingFunction:finderSortWithLocale
context:[NSLocale currentLocale]];

关于iphone - 使用数字字符串对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230286/

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