arrayByAddingObjectsFromArray?

Kri*_*son 10 cocoa-touch objective-c

我不确定我在这里做错了什么?我尝试了各种组合来尝试将数组复制到变量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]);
Run Code Online (Sandbox Code Playgroud)

谢谢...

所以这可以从给定的答案起作用:

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

[mmm addObjectsFromArray:kkk];

NSLog(@"Working: %@",[mmm objectAtIndex:3]);
Run Code Online (Sandbox Code Playgroud)

Wev*_*vah 21

arrayByAddingObjectsFromArray:返回一个新的(自动释放的)NSArray对象.你想要的是什么addObjectsFromArray:.


Chu*_*uck 9

arrayByAddingObjectsFromArray:返回一个新的NSArray,它包含接收器中的对象,后跟参数中的对象.您在那里发布的代码未mmm设置,可能会崩溃,因为mmm它没有指向NSArray对象.如果你已经分配了一个数组mmm,那么它将返回(@"1", @"2", @"3", @"4", @"a", @"b", @"cat", @"dog")- 但是你没有将结果分配给任何变量,所以它无处可去.你必须做类似的事情NSArray *yetAnotherArray = [mmm arrayByAddingObjectsFromArray:kkk].

如果您有NSMutableArray并且想要从另一个数组添加对象,请使用addObjectsFromArray:.