Удаление раздела в приложении UITableview Crashing - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть UITableView, и я хочу удалить разделы и строки.Я пытаюсь удалить весь раздел с его строками внутри.Ниже приведены случаи, которые меня смущают.

  1. Когда я пытаюсь удалить раздел сверху вниз или снизу вверх, чтобы все разделы удалялись без ошибки
  2. Когда япопробуйте удалить разделы случайным образом, т. е. сначала я удаляю верхний первый раздел, а затем, когда я пытаюсь удалить 4-й, 8-й или последний раздел, приложение вылетает самостоятельно

Crash Log

Неустранимая ошибка: индекс выходит за пределы диапазона

вот как я это делаю:

 func onHeaderSwippedRight(ClickedSection: IndexPath) {


    dataSource.remove(at: ClickedSection.section)

    // use the UITableView to animate the removal of this row
    tableView.beginUpdates()

    tableView.deleteSections(IndexSet.init(integer : ClickedSection.section), with: .automatic)

    tableView.endUpdates()

}

Путь индекса, который я передаюв эту функцию onHeaderSwippedRight (ClickedSection: IndexPath) передается делегированным методом.Bcz В моем классе я передаю его при настройке данных раздела

Моё грубое предположение состоит в том, что после удаления раздела таблица должна обновлять индексы раздела, потому что, как яЯ удаляю данные из источника данных, он не должен выводить индекс из связанной проблемы, если разделы сами обновляются

, пожалуйста, помогите и скажите, что я делаю неправильно

Обновление;

public class ListModel : Object {


var   Id : String = ""
var   UserId : Int64 = 0
var   Name : String? = ""
var   Items : [ListDetailServiceModel]? =  []}

Это моя модель, и у меня есть список этого примерно так

let dataSource :[ListModel] = []
...