Объединить один NSMutableArray в конец другого NSMutableArray - PullRequest
13 голосов
/ 23 августа 2010

Простой ответ на этот супер простой вопрос был бы великолепен!Вот псевдокод:

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?

Большое спасибо!

Ответы [ 2 ]

48 голосов
/ 23 августа 2010

Чтобы создать массив:

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];
1 голос
/ 01 июня 2012

На основании ответа Владимира я написал простую функцию:

NSMutableArray* arrayCat(NSArray *a, NSArray *b)
{
    NSMutableArray *ret = [NSMutableArray arrayWithCapacity:[a count] + [b count]];
    [ret addObjectsFromArray:a];
    [ret addObjectsFromArray:b];
    return ret;
}

но я не пытался выяснить, быстрее или медленнее этот подход, чем у Владимира

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...