在 Objective-C 或 Swift 中将大量 NSArray 组合成单个 NSArray

Combine large number of NSArrays into single NSArray in Objective-C or Swift

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

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

如果你有大量的数组,比如十个或更多,有没有比一个一个组合更简单的方法?

如果我们谈论的是 Swift,而您只需要一段短距离,那么您可以这样做:

let a = [0, 1]
let b = [2, 3]
let c = [4, 5]

let d = [a, b, c].flatMap { [=10=] }

LinqToObjectiveC 可能对你有帮助。

该项目包含一组 NSArray 和 NSDictionary 方法,这些方法允许您使用流利的语法执行查询,灵感来自 Linq。

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

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

*我从未尝试过这个项目,但我认为值得一试。