Obtención de acceso incorrecto al eliminar la vista de tabla de celda y recarga

Estoy intentando build una tabla usando UITableViewCell personalizado, pero después de borrar la celda y cuando bash cargar la vista, obtengo un error EXC_BAD_ACCESS, aquí obtengo datos de un dictionary y lo carga a la vista de tabla.

El código para mi tabla es el siguiente:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { cell = (uploadCustomCell *)[tabelView1 dequeueReusableCellWithIdentifier:@"cell"]; [cell setSelectionStyle:UITableViewCellEditingStyleNone]; if (cell == nil) { [[NSBundle mainBundle]loadNibNamed:@"uploadCustomCell" owner:self options:nil]; cell = (uploadCustomCell *)self.uploadCustomcell; } saveBtnCcell.hidden = YES; cell.textNamefield.hidden = YES; [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; [cell.defaultSwitch setEnabled:NO]; NSMutableArray *dictionary = [contents objectAtIndex:indexPath.row]; NSLog(@"dict dict :%@",dictionary); // cell.nameLabelCell.text = [dictionary valueForKey:@"VideoName"]; cell.userName.text = [dictionary valueForKey:@"User"]; NSString *defaultVideo = [dictionary valueForKey:@"DefaultVideo"]; if ([defaultVideo isEqualToString:@"1"]) { [cell.defaultSwitch setOn:YES animated:YES]; } else { [cell.defaultSwitch setOn:NO animated:YES]; } [cell.defaultSwitch addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; cell.thumbImg.image = [arrayimage objectAtIndex:indexPath.row]; VideoNameTextField.hidden = YES; return cell; } - (void)setState:(id)sender { state = [sender isOn]; // NSString *rez = state == YES ? @"YES" : @"NO"; NSLog(@"state.........:%d",state); } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"height:%f",uploadCustomcell.frame.size.height); return 207; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSMutableArray *dictionary = [contents objectAtIndex:indexPath.row]; NSLog(@"Dictionary:%@",dictionary); NSLog(@"indexpath:%@",indexPath); // NSLog(@"at index%d obj:%@",indexPath.row,dictionary); NSString *nameDetails = [dictionary valueForKey:@"VideoName"]; guid = [dictionary valueForKey:@"GUID"]; detailsNameLbl.text = nameDetails; detailsVehImg.image = [arrayimage objectAtIndex:indexPath.row];; } - (void)tableView:(UITableView *)tableView commitEditingStyle: (UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { [contents removeObjectAtIndex:indexPath.row]; [tabelView1 reloadData]; } } 

Pruebe esto: [tableView deleteRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] withRowAnimation: UITableViewRowAnimationFade];

Debe usar este método también:

 - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleDelete; } - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { [contents removeObjectAtIndex:indexPath.row]; [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; //[tabelView1 reloadData]; 

}