Ответ 1
arrayByAddingObjectsFromArray:
возвращает новый (автореализованный) объект NSArray
. Вы хотите addObjectsFromArray:
.
Я не уверен, что я здесь делаю неправильно? Я попробовал различные комбинации, чтобы попытаться скопировать массив в переменную 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]);
arrayByAddingObjectsFromArray:
возвращает новый (автореализованный) объект NSArray
. Вы хотите addObjectsFromArray:
.
arrayByAddingObjectsFromArray:
возвращает новый NSArray, который включает объекты в приемнике, за которым следуют объекты в аргументе. Код, который вы там разместили, с mmm
unset, вероятно, просто сработает, поскольку mmm
не указывает на объект NSArray. Если вы присвоили массив mmm
, то он вернет (@"1", @"2", @"3", @"4", @"a", @"b", @"cat", @"dog")
- но вы не присвоите результат какой-либо переменной, так что это просто некуда. Вам нужно будет сделать что-то вроде NSArray *yetAnotherArray = [mmm arrayByAddingObjectsFromArray:kkk]
.
Если у вас есть NSMutableArray и вы хотите добавить объекты из другого массива, используйте addObjectsFromArray:
.