gpt4 book ai didi

iphone - 首先按 'nearest distance' 对两个 NSMutableArrays 进行排序

转载 作者:行者123 更新时间:2023-11-29 11:08:29 26 4
gpt4 key购买 nike

我有两个数组,都充满了像这样的 NSString 对象:

NSMutableArray *titles = [[NSMutableArray alloc] initWithObjects:@"Title1", @"Title2", @"Title3", @"Title4", @"Title5", nil];

NSMutableArray *distances = [[NSMutableArray alloc] initWithObjects:@"139.45", @"23.78", @"347.82", @"10.29", @"8.29", nil];

如何先按最近的距离对两个数组进行排序?

所以结果是这样的:

titles = @"Title5", @"Title4", @"Title2", @"Title1", @"Title3"
distances = @"8.29", @"10.29", @"23.78", @"139.45", @"347.82"

我知道 NSSortDescriptor 可以在这些情况下使用,但在查看文档后,我仍然不确定如何使用。

最佳答案

我会以这种方式对距离进行排序...

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];

NSArray *sortedDistances = [listItem sortedArrayUsingComparator: ^(id a, id b) {
NSNumber *aNum = [f numberFromString:a];
NSNumber *bNum = [f numberFromString:b];
return [aNum compare:bNum];
}];

我想不出一种特别快速的方法来对关联的标题进行排序,但这应该可行......

NSMutableArray *sortedTitles = [NSMutableArray array];
NSDictionary *distanceTitle = [NSDictionary dictionaryWithObjects:titles forKeys:distances];

for (NSString *distance in sortedDistances) {
NSString *associatedTitle = [distanceTitle valueForKey:distance];
[sortedTitles addObject:associatedTitle];
}

关于iphone - 首先按 'nearest distance' 对两个 NSMutableArrays 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12694079/

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