iOS 将所有 NSArray 合二为一

iOS Get all NSArray into one

我有 NSArray 和 NSArray。我想把所有的 NSArray 合二为一。

我认为有一个简单的函数可以使用,不是吗?

这是我收到的:

(
        (
        n0eGi1KJWq,
        KHGeW32548,
    ),
        (
        n0eGi1KJWq
    )
)

我想得到:

(
        n0eGi1KJWq,
        KHGeW32548,
        n0eGi1KJWq
)

可以使用一个简单的循环来创建一个新数组:

NSArray *mainArray = ... // the array containing the other arrays
NSMutableArray *finalArray = [NSMutableArray array];
for (NSArray *innerArray in mainArray) {
    [finalArray addObjectsFromArray:innerArray];
}

此时 finalArray 将拥有所有其他数组中的所有对象。

您也可以使用 @unionOfArrays 来达到这个目的:

NSArray *flatArray = [array valueForKeyPath: @"@unionOfArrays.self"]; 

如果需要更深的展平(对于三维数组),使用两次:

NSArray *flatArray = [array valueForKeyPath: @"@unionOfArrays.self.@unionOfArrays.self"];