Объедините большое количество NSArrays в один NSArray в Objective-C или Swift - PullRequest
0 голосов
/ 06 февраля 2019

Я могу объединить два NSArrays со следующим кодом:

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

Если у вас большое количество массивов, например десять или более, есть ли более простой способ объединить их, чем один за другим?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

LinqToObjectiveC может быть вашей помощью.

Этот проект содержит коллекцию методов NSArray и NSDictionary, которые позволяют выполнять запросы с использованием свободного синтаксиса, вдохновленного Linq.

Я думаю, вы можете объединить десять или более массивов, как показано ниже.

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

* Я никогда не пробовал этот проект, но я думаю, что стоит попробовать.

0 голосов
/ 06 февраля 2019

Если мы говорим о Swift и все, что вам нужно, это короткий путь, то вы можете сделать это так:

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

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