我有一个 NSArray
实例,其中包含 NSArray
实例。内部数组仅包含 NSString
的实例。我需要按选定的索引按字母顺序对嵌套数组进行排序。
例如
@[
@[@"test",@"B",@"test2"],
@[@"bla",@"A",@"bla"],
@[@"xyz",@"C",@"123"]
]
用户选择索引 1,升序排序。结果应该是:
@[
@[@"bla",@"A",@"bla"],
@[@"test",@"B",@"test2"],
@[@"xyz",@"C",@"123"]
]
最佳答案
您可以使用sortedArrayUsingComparator
:
NSArray *array = @[@[@"test",@"B",@"test2"],
@[@"bla",@"A",@"bla"],
@[@"xyz",@"C",@"123"]];
NSInteger index = 1;
NSArray *sorted = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return [obj1[index] compare:obj2[index] options:NSCaseInsensitiveSearch];
}];
显然,如果子数组具有不同数量的项目,或者它们不都是字符串,您可能会包含一些额外的逻辑来处理该问题,但它说明了基本思想。
关于objective-c - 如何使用嵌套 NSArray 对 NSArray 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42843797/