gpt4 book ai didi

ios - 根据一组有序字符串对 NSStrings 的 NSArray 进行排序

转载 作者:可可西里 更新时间:2023-11-01 03:44:00 26 4
gpt4 key购买 nike

我有一个 NSArray,其中包含一些 NSString 对象。例如:

NSArray *objects = @[@"Stin",@"Foo",@"Ray",@"Space"];

现在我需要根据以下字符串顺序对该数组进行排序。

NSArray *sortOrder = @[@"John",@"Foo",@"Space",@"Star",@"Ray",@"Stin"];

所以答案应该是

NSArray *sorted = @[@"Foo",@"Space",@"Ray",@"Stin"];

我怎样才能做到这一点?

回答:基于 dasblinkenlight 的已接受答案,我做了以下操作,它很有魅力。

NSMutableArray *objects = @[@"Star",@"Stin",@"Foo",@"Ray",@"Space",@"John"];
NSArray *sortOrder = @[@"John",@"Foo",@"Space",@"Star",@"Ray",@"Stin"];

[objects sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
int index1 = [sortOrder indexOfObject:obj1];
int index2 = [sortOrder indexOfObject:obj2];

if (index1 > index2)
return NSOrderedDescending;
if (index1 < index2)
return NSOrderedAscending;
return NSOrderedSame;
}];

最佳答案

创建 NSComparator 保存对超集数组的引用,并通过比较两个字符串上调用 [superset indexOfObject:str] 的结果来决定字符串的相对顺序.调用 sortedArrayUsingComparator: 传递 NSComparator 的实例以获得所需的顺序。

关于ios - 根据一组有序字符串对 NSStrings 的 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14458292/

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