Удалить запись из базы данных

Я безуспешно пытаюсь удалить ячейку из таблицы, а также удалить связанную с ней запись из базы данных. Вот мой код:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {

        // Delete the row from the data source
        [self.arr removeObjectAtIndex:indexPath.row];
        [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
        [self.tableView reloadData];
        NSError *error = nil;
        [self.context save:&error];
    }
    else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
    }
        [self.tableView reloadData];
}

Пожалуйста, любые предложения приветствуются. Я попробовал все, прочитал много подобных вопросов на SO, все еще не могу понять это. Спасибо.

2 ответа

Решение

Перед тем, как удалить объекты в вызове массива:

NSManagedObject *eventToDelete = [matchedObjects objectAtIndex:indexPath.row];
[context deleteObject:eventToDelete];

Для удаления строки из табличного представления правильно написано то, что вы написали, но после удаления строки не звоните ReloadData после deleteRowsAtIndexPaths....

[self.arr removeObjectAtIndex:indexPath.row];

[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

Вы никогда не удаляли объект в базе данных.

Другие вопросы по тегам