В моем приложении для iPhone у меня есть UITableView со следующим методом
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return [tableArrays count];
}
Обратите внимание, что tableArrays
- это переменная класса (NSMutableArray из NSMutableArrays - представляющий один NSMutableArray для каждого раздела в моем tableView). Теперь этот UITableView поддерживает редактирование, и у меня есть следующий метод
- (void)tableView:(UITableView *)theTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
...some code...
NSLog(@"tableArrays count is %i",[tableArrays count]);
[tableArrays removeObjectAtIndex:indexPath.section];
NSLog(@"tableArrays is now %@",tableArrays);
NSLog(@"tableArrays count is now %i",[tableArrays count]);
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
Итак, я запускаю приложение, и у меня есть два раздела в табличном представлении. Удаление строк работает нормально, кроме случаев, когда я удаляю последнюю строку в разделе. Когда я удаляю последнюю строку раздела 1, я вижу следующий вывод в соответствии с кодом выше:
tableArrays count is 2
tableArrays is now (("Blah1","Blah2"))
tableArrays count is now 1
Ясно, что мой счет tableArrays
уменьшается на единицу, но я получаю следующую ошибку:
...The number of sections contained in the tableView after the update (1) must be qual to the number of sections contained in the table view before the update (2), plus or minus the number of sections inserted or dleted (0 inserted, 0 deleted).'