如何使用嵌套的NSArray对NSArray进行排序

时间:2017-03-16 20:04:59

标签: objective-c sorting nsarray

我的<script src="https://maps.googleapis.com/maps/api/js"></script> <div id="map_canvas"></div>实例里面有NSArray个实例。内部数组仅包含NSArray的实例。我需要按选定的索引按字母顺序对嵌套数组进行排序。

E.g。

NSString

用户选择索引1,升序排序。结果应该是:

@[
  @[@"test",@"B",@"test2"],
  @[@"bla",@"A",@"bla"],
  @[@"xyz",@"C",@"123"]
]

1 个答案:

答案 0 :(得分:3)

您可以使用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];
}];

显然,如果子数组具有不同数量的项目或者它们不是所有字符串,您可能会包含一些额外的逻辑来处理它,但它说明了基本的想法。