Search code examples
iphonecopynsmutablearraynsarray

Copy NSMutablearray to another


I am trying to copy NSMutableArray to another but it does not show me anything at the UITableView:

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

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

NSMutableArray *list = [[NSMutableArray alloc] init];

[self.list addObjectsFromArray:myArray];

Nothing show up! What is wrong?

It crashes my app because I do not have nil at my NSMutableArray how can I add nil to it? addobject:nil does not work it crashes the app:

static NSString * DisclosureButtonCellIdentifier = 
@"DisclosureButtonCellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: 
                         DisclosureButtonCellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                   reuseIdentifier: DisclosureButtonCellIdentifier]
            autorelease];
}
NSUInteger row = [indexPath row];

NSString *rowString =nil;

rowString = [list objectAtIndex:row];


cell.textLabel.text = rowString;

cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
[rowString release];
return cell;

Solution

  • 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];