У меня есть следующий вопрос: у меня есть функция, в которой я удаляю объект из массива и из табличного представления, а также вызываю функцию, которая удаляет этот объект из 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)
}
}
И это основная функция.
Когда я удаляю строки, ничего плохого не происходит, однако, когда я добираюсь до последней Я получаю эту ошибку:
Возможно, стоит также отметить, что когда я попросил свою программу распечатать мне идентификатор каждой удаленной строки, с которой она начинается 4 и увеличивается на единицу с каждой удаленной строкой.
Кто-нибудь может мне помочь?