У меня есть UITableView, и я хочу удалить разделы и строки.Я пытаюсь удалить весь раздел с его строками внутри.Ниже приведены случаи, которые меня смущают.
- Когда я пытаюсь удалить раздел сверху вниз или снизу вверх, чтобы все разделы удалялись без ошибки
- Когда япопробуйте удалить разделы случайным образом, т. е. сначала я удаляю верхний первый раздел, а затем, когда я пытаюсь удалить 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] = []