NSArray *a = @[@1];
a = [a arrayByAddingObject:@2];
a = [a arrayByAddingObjectsFromArray:@[@3, @4, @5]];
These methods are optimized to recreate the new array very efficiently, usually without having to destroy the original array or even allocate more memory.