arrayByAddingObjectsFromArray? - PullRequest
10 голосов
/ 15 июля 2011

Я не уверен, что я здесь делаю не так? Я пробовал различные комбинации, чтобы попытаться скопировать массив в переменную ммм. Я пытаюсь научиться создавать двумерный массив, а затем запустить цикл для размещения 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]);

Ответы [ 2 ]

21 голосов
/ 15 июля 2011

arrayByAddingObjectsFromArray: возвращает новый (автоматически выпущенный) NSArray объект.То, что вы хотите, это addObjectsFromArray:.

9 голосов
/ 15 июля 2011

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

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

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