Я пытаюсь сделать бесконечный просмотр таблицы прокрутки, но проблема в том, что когда я пытаюсь перезагрузить строки, я получаю "attempt to delete row 12 from section 0 which only contains 10 rows before the update"
.
Я загружаю первые 10 результатов, а послеони отображаются, я загружаю остальное. Но перед сбоем я po
'd listObj.count
просто для того, чтобы убедиться, что он правильно добавляет результаты, и да, это работает.
private func loadDataBackground() {
if self.totalPages! > self.currentPage {
var response: [AnyHashable]?
self.currentPage += 1
self.api = Api()
if self.type == "sometype" {
self.api.someMethodPaginated(page: self.currentPage, resultsbyPage: self.resultsByPage!)
response = Api.responseToArray(self.api) as? [AnyHashable]
}
if response != nil {
for object in response! {
self.listObj.append(object)
}
let indexToReload = calculateIndexPathsToReload(newListaObj: response!)
DispatchQueue.main.async {
self.myTableView.beginUpdates()
self.myTableView.reloadRows(at: indexToReload, with: .automatic)
self.myTableView.endUpdates()
}
}
}
}
private func calculateIndexPathsToReload(newListObj : Array<Any>) -> [IndexPath] { //comments
let startIndex = listObj.count - newListObj.count
let endIndex = startIndex + newListObj.count
return (startIndex..<endIndex).map { IndexPath(row: $0, section: 0) }
}
Я использовал второй метод, описанный здесь , чтобы определить последнюю строку.
Что я делаю не так?