Я пишу корзину для покупок, и все, кажется, работает хорошо, но я не могу удалить последнюю строку.
Я могу удалить, но не последнюю строку.
override func viewDidLoad() {
super.viewDidLoad()
createLineItems()
}
override func numberOfSections(in tableView: UITableView) -> Int {
if lineItems.count == 0 {
return 0
} else {
return 1
}
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return lineItems.count
}
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if(editingStyle == .delete) {
lineItems.remove(at: indexPath.row)
tableView.beginUpdates()
let indPath = IndexPath(item: indexPath.row, section: 0 )
tableView.deleteRows(at: [indPath], with: .fade)
tableView.endUpdates()
}
}
func createLineItems() {
lineItems = [LineItem]()
lineItems.append(LineItem(frame:
CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height),
index: 1)
)
lineItems.append(LineItem(frame:
CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height),
index: 2)
)
lineItems.append(LineItem(frame:
CGRect(x: 0, y: 0, width: self.view.bounds.width, height: self.view.bounds.height),
index: 3)
)
}
Я получаю сообщение об ошибке:
Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Неверное обновление: неверное количество разделов.Количество разделов, содержащихся в табличном представлении после обновления (0), должно быть равно количеству разделов, содержащихся в табличном представлении до обновления (1), плюс или минус количество вставленных или удаленных разделов (0 вставлено, 0удалено). '
Я прочитал:
https://www.hackingwithswift.com/example-code/uikit/how-to-remove-cells-from-a-uitableview
, а также другие страницы, которые я не могу найти повторно.
Я знаю, что сначала мне нужно удалить элементы из моего массива, а затем удалить строку.
Я знаю, что почти уверен, что мне нужно окружить удаление моей строки beginUpdates и endUpdates.
Но я получаю эту ошибку каждый раз.Я перепробовал 100 различных вариантов.
Ошибка говорит о том, что число строк должно быть на 1 меньше исходного числа.
Я понятия не имею, как это не так.