Copy NSMutablearray to another

流过昼夜 提交于 2019-12-04 08:58:38

Your initial call to alloc an NSMutableArray will most likely crash, since you don't have a nil terminator in your argument list.

Also, you have a local variable, list, and a property, list. Make sure you're instantiating what you think you are. You might need to do this:

NSMutableArray *objectsToAdd= [[NSMutableArray alloc] initWithObjects:@"one",@"two", nil];

NSMutableArray *myArray = [[NSMutableArray alloc] initWithObjects:objectsToAdd,nil];

self.list = [[NSMutableArray alloc] init];

[self.list addObjectsFromArray:myArray];

This might help you:

NSMutableArray *result  = [NSMutableArray arrayWithArray:array];

or

NSMutableArray *result = [array mutableCopy]; //recommended

There are a few problems... One problem is that you're using 'initWithObjects' and adding the previous array. This seems like unwanted behaviour since you most likely want to add the strings @"one" and @"two" to the array. You most likely intended to use initWithArray or addObjectsFromArray. (Doing it the way you did, will add the NSMutableArray (not its objects) to the list)

The second problem, when you use initWithObjects, you need to list each of the objects and then terminate the list with a nil value. (docs) In other words, you need to use...

NSMutableArray *objectsToAdd = [[NSMutableArray alloc] initWithObjects:@"One", @"Two", nil];

The problem might be that the local declaration of listin line 4 conflicts with the property.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!