Как объединить два массива в Objective-C?

Что такое Objective-C эквивалент функции JavaScript concat()?

Предполагая, что оба объекта являются массивами, как бы вы их объединили?

Ответ 1

NSArray arrayByAddingObjectsFromArray: более или менее эквивалентен методу JavaScript .concat():

NSArray *newArray=[firstArray arrayByAddingObjectsFromArray:secondArray];

Примечание. Если firstArray равно нулю, newArray будет равно нулю. Это можно исправить, используя следующее:

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

Если вы хотите разбить дубликаты:

NSArray *uniqueEntries = (NSArray *)[[NSSet setWithArray:newArray] allObjects];

Ответ 2

Здесь симметричный и простой способ, только начиная с пустого массива:

NSArray* newArray = @[];
newArray = [newArray arrayByAddingObjectsFromArray:firstArray];
newArray = [newArray arrayByAddingObjectsFromArray:secondArray];

Ответ 3

Для версии Swift это как шарм:

let a = [1,2,3]
let b = [3,4]
let c = a + b
print(c)