Объединение одного NSMutableArray в конец другого NSMutableArray
Простой ответ на этот супер простой вопрос будет замечательным! Вот псевдокод:
NSMutableArray *Africa = [Lion, Tiger, Zebra];
NSMutableArray *Canada = [Polar Bear, Beaver , Loon];
NSMutableArray *Animals = *Africa + *Canada;
В чем я хочу:
Animals = [Lion, Tiger, Zebra, Polar Bear, Beaver, Loon];
Каков правильный синтаксис для достижения этого в Objective-C/Cocoa?
Большое спасибо!
Ответы
Ответ 1
Чтобы создать массив:
NSMutableArray* africa = [NSMutableArray arrayWithObjects: @"Lion", @"Tiger", @"Zebra", nil];
NSMutableArray* canada = [NSMutableArray arrayWithObjects: @"Polar bear", @"Beaver", @"Loon", nil];
Чтобы объединить два массива, вы можете инициализировать массив с элементами 1-го массива, а затем добавить элементы от 2-го к нему:
NSMutableArray* animals = [NSMutableArray arrayWithArray:africa];
[animals addObjectsFromArray: canada];
Ответ 2
На основании ответа Владимира я написал простую функцию:
NSMutableArray* arrayCat(NSArray *a, NSArray *b)
{
NSMutableArray *ret = [NSMutableArray arrayWithCapacity:[a count] + [b count]];
[ret addObjectsFromArray:a];
[ret addObjectsFromArray:b];
return ret;
}
но я не пытался выяснить, работает ли этот подход быстрее или медленнее, чем у Владимира