У меня есть статическое табличное представление, которое содержит три раздела
раздел 1 содержит 1 строку
раздел 2 содержит 1 строку
раздел 3 содержит 2 строки
У меня есть UISwitch в разделе 1, что, изменив его, раздел 2 должен быть удален или вставлен
Поскольку у меня есть статическая таблица, я только добавил numberOfSections
протоколы. Также я создал массив с именем раздела,просто для подсчета количества разделов, не более того.
override func numberOfSections(in tableView: UITableView) -> Int {
if exportDataSwitch.isOn {
return sections.count - 1
} else {
return sections.count
}
}
В функции, которая будет вызываться после включения или выключения переключателя, я написал эти коды
@objc func switchStateDidChange(_ sender: UISwitch) {
if exportDataSwitch.isOn {
tableView.beginUpdates()
tableView.deleteSections([1], with: .fade)
tableView.endUpdates()
} else {
tableView.beginUpdates()
tableView.insertSections([1], with: .fade)
tableView.endUpdates()
}
}
Проблема в том, когда я хочу удалить раздел 2 ([1]), я получил эту ошибку
Thread 1: signal SIGABRT
Но она отлично работает, когда я хочу удалить последний раздел (раздел 3 [2]).
Я слышал, что мне нужно удалитьсначала данные внутри раздела, но когда он удаляет последний раздел, я не удаляю данные, и он работает нормально.не могли бы вы помочь мне в этом?большое спасибо