Ошибка при попытке удалить строки из TableView и SQL в быстром режиме - PullRequest
0 голосов
/ 09 мая 2020

У меня есть следующий вопрос: у меня есть функция, в которой я удаляю объект из массива и из табличного представления, а также вызываю функцию, которая удаляет этот объект из SQL.

func deleteNote(noteId: Int32) {
        connect()

        var statement: OpaquePointer? = nil
        if sqlite3_prepare_v2(
            database,
            "DELETE FROM notes WHERE rowid = \(noteId)",
            -1,
            &statement,
            nil
        ) == SQLITE_OK {
            if sqlite3_step(statement) != SQLITE_DONE {
                print("Error deleting note")
            }
        }
        else {
            print("Error creating note update statement")
        }

        sqlite3_finalize(statement)
    }

Это функция, которая удаляет из SQL.

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {
            notes.remove(at: indexPath.row)
            tableView.deleteRows(at: [indexPath], with: .bottom)
            NoteManager.shared.deleteNote(noteId: notes[indexPath.row].id)
        }
    }

И это основная функция.

Когда я удаляю строки, ничего плохого не происходит, однако, когда я добираюсь до последней Я получаю эту ошибку:

enter image description here

Возможно, стоит также отметить, что когда я попросил свою программу распечатать мне идентификатор каждой удаленной строки, с которой она начинается 4 и увеличивается на единицу с каждой удаленной строкой.

Кто-нибудь может мне помочь?

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