42

How to concatenate two arrays into a single array in Objective-C?

Arnaud
  • 7,259
  • 10
  • 50
  • 71
Kiran
  • 551
  • 2
  • 7
  • 13

3 Answers3

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

Or using mutable array version just add to it all objects from another array:

[myMutableArray addObjectsFromArray:secondArray];
Vladimir
  • 170,431
  • 36
  • 387
  • 313
9

With immutable arrays:

NSArray *arr1 = @[@(1), @(2), @(3)];
NSArray *arr2 = @[@(4), @(5), @(6)];
NSArray *arr3 = [arr1 arrayByAddingObjectsFromArray:arr2];

or adding onto a mutable array:

NSArray *arr1 = @[@(1), @(2), @(3)];
NSArray *arr2 = @[@(4), @(5), @(6)];
NSMutableArray *arr3 = [NSMutableArray arrayWithArray:arr1];

[arr3 addObjectsFromArray:arr2];
Iulian Onofrei
  • 9,188
  • 10
  • 67
  • 113
bnabilos
  • 2,234
  • 4
  • 23
  • 30
1
NSSArray *theArrayIReallyWant = [oneArrayIDontReallyWant arrayByAddingObjectsFromArray:otherArrayIDontReallyWant];

If you need to, retain theArrayIReallyWant so it stays in memory, just be sure to release it when you are done. That by far is the easiest method :)

Richard J. Ross III
  • 55,009
  • 24
  • 135
  • 201