【问题标题】:How to sort an NSArray with nested NSArray如何使用嵌套的 NSArray 对 NSArray 进行排序
【发布时间】:2017-03-16 20:04:59
【问题描述】:

我有一个NSArray 的实例,里面有NSArray 的实例。内部数组仅包含 NSString 的实例。我需要按选定索引的字母顺序对嵌套数组进行排序。

例如

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

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

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

【问题讨论】:

    标签: objective-c sorting nsarray


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      相关资源
      最近更新 更多