Как удалить строку из таблицы? - PullRequest
0 голосов
/ 19 января 2012

У меня есть табличное представление, данные были получены из базы данных и отображены в строках таблицы.

У меня есть кнопка удаления на верхней панели навигации для удаления строки таблицы.

Когда кнопканажмите, появится значок удаления красного круга.

После того, как я выбрал удаление, он выдал мне сообщение об ошибке "Программа получила сигнал SIGABRT" в [tableViewDelete rows ......] Это мой код.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
      if (editingStyle == UITableViewCellEditingStyleDelete) 
      {              
           Object = [array objectAtIndex:indexPath.row];
           [ClassA ClassAMethod:[appDelegate getDBPath] :Object.ID];
           [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
      }   
}

Как удалить строку из табличного представления?

У кого-нибудь есть идеи или кто-то еще достиг чего-либо подобного?

Спасибо

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Я предполагаю эту строку:

[ClassA ClassAMethod:[appDelegate getDBPath] :Object.ID]; 

удаляет ваш объект из базы данных, а таблица заполняется из некоторого экземпляра array - вам также необходимо удалить объект из этого массива, чтобы сохранить целостность данных (array должен быть NSMutableArray экземпляр):

Object = [array objectAtIndex:indexPath.row];
[ClassA ClassAMethod:[appDelegate getDBPath] :Object.ID];
// Add the following line
[array removeObjectAtIndex:indexPath:row];
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
1 голос
/ 19 января 2012

попробуйте этот код при редактировании метода делегата tableview: -

  if (editingStyle == UITableViewCellEditingStyleDelete)

  {
    [[self displayedObjects] removeObjectAtIndex:[indexPath row]];
    //  Animate deletion
    NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
    [[self tableView] deleteRowsAtIndexPaths:indexPaths
                            withRowAnimation:UITableViewRowAnimationFade];
 }

Я надеюсь, что это может решить вашу проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...