代码之家  ›  专栏  ›  技术社区  ›  user1904273

在Objective-C或Swift中将大量NSArray合并为单个NSArray

  •  -3
  • user1904273  · 技术社区  · 7 年前

    我可以使用以下代码组合两个NSArray:

    NSArray *combinedArray =firstArray?[firstArray arrayByAddingObjectsFromArray:secondArray]:[[NSArray alloc] initWithArray:secondArray];
    

    如果有大量数组(如10个或更多),是否有比逐个组合更简单的方法?

    2 回复  |  直到 7 年前
        1
  •  2
  •   SIlvester    7 年前

    如果我们谈论的是Swift,您所需要的只是一条捷径,那么您可以这样做:

    let a = [0, 1]
    let b = [2, 3]
    let c = [4, 5]
    
    let d = [a, b, c].flatMap { $0 }
    
        2
  •  1
  •   MORI    7 年前

    LinqToObjectiveC

    该项目包含一组NSArray和NSDictionary方法,这些方法允许您使用受Linq启发的流畅语法执行查询。

    我认为您可以像下面这样合并十个或更多数组。

    id mergedArray = [tenOrMoreArrays linq_aggregate:^id(id item, id aggregate) {
        return [aggregate arrayByAddingObjectsFromArray:item];
    }];