ArrayByAddingObjectsFromArray?

Я не уверен, что я здесь делаю неправильно? Я попробовал различные комбинации, чтобы попытаться скопировать массив в переменную mmm. Я пытаюсь узнать, как создать 2D-массив, а затем запустить цикл для размещения init_array в 10 столбцах.

// NSMutableArray *mmm = [NSMutableArray arrayWithCapacity: 20];
NSMutableArray *kkk = [NSMutableArray arrayWithObjects: @"a", @"b", @"cat", @"dog", nil];
NSMutableArray *mmm; //= [NSMutableArray arrayWithObjects: @"1", @"2", @"3", @"4", nil];

[mmm arrayByAddingObjectsFromArray:kkk];

NSLog(@"Working: %@",[mmm objectAtIndex:3]);

спасибо...

поэтому это работает из данного ответа:

NSMutableArray *mmm = [NSMutableArray arrayWithCapacity: 20];
NSMutableArray *kkk = [NSMutableArray arrayWithObjects: @"a", @"b", @"cat", @"dog", nil];

[mmm addObjectsFromArray:kkk];

NSLog(@"Working: %@",[mmm objectAtIndex:3]);

Ответ 1

arrayByAddingObjectsFromArray: возвращает новый (автореализованный) объект NSArray. Вы хотите addObjectsFromArray:.

Ответ 2

arrayByAddingObjectsFromArray: возвращает новый NSArray, который включает объекты в приемнике, за которым следуют объекты в аргументе. Код, который вы там разместили, с mmm unset, вероятно, просто сработает, поскольку mmm не указывает на объект NSArray. Если вы присвоили массив mmm, то он вернет (@"1", @"2", @"3", @"4", @"a", @"b", @"cat", @"dog") - но вы не присвоите результат какой-либо переменной, так что это просто некуда. Вам нужно будет сделать что-то вроде NSArray *yetAnotherArray = [mmm arrayByAddingObjectsFromArray:kkk].

Если у вас есть NSMutableArray и вы хотите добавить объекты из другого массива, используйте addObjectsFromArray:.