Добрый день, ребята!
У меня есть небольшая проблема с обновлением данных.
Я получаю информацию из бэкэнда с помощью JSON-RPC и заполняю ячейки моего табличного представления.
Я реализовал UIRefreshContol для моего TableView, так что теперь, когда я нажимаю, чтобы обновить, он дает мне новую информацию поверх старой.
Итак, у меня есть список продуктов, и когда я добавляю некоторые продукты и обновляю tableView для получения обновленной информации, tableView дает мне старую информацию и новую поверх старой.
Есть ли способы очистить таблицу до того, как я получу обновленную информацию из JSON?
// Это мой JSON
func getJSONresponse() {
getResponse(o_method: "search_read", o_model: "res.users", o_domain:[["id", "=", jkID]], o_fields: ["name","partner_id"]) { (result) -> () in
//print(result)
if result != JSON.null {
let partner_id = result[0]["partner_id"][0].int!
getResponse(o_method: "search_read", o_model: "res.partner", o_domain: [["id", "=", partner_id]], o_fields: ["name", "kato"], completion: { (result)->() in
//print(result)
let id = result[0]["kato"][0].int!
katoID = id
print("adiasodjasoid",katoID)
getResponse(o_method: "search_read", o_model: "property.building", o_domain: [], o_fields: ["name","kato_area"], completion: { (result)->() in
result.forEach({ (temp) in
var area:String = "", name:String = "", totID: Int = 0
if (temp.1["kato_area"].string != nil) {
area = temp.1["kato_area"].string!
}
if (temp.1["name"].string != nil) {
name = temp.1["name"].string!
}
if (temp.1["id"].int != nil) {
totID = temp.1["id"].int!
}
let newModel = resUser(area: area, name: name, id: totID)
self.data.append(newModel)
})
DispatchQueue.main.async {
self.tableView.reloadData()
}
// print(self.data)
})
})
}
}
}
Это моя функция для обновления
@objc func refreshData() {
tableView.reloadData()
getJSONresponse()
self.tableView.contentInset = UIEdgeInsets(top: 80, left: 0, bottom: 0, right: 0)
DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
self.refresher.endRefreshing()
self.tableView.contentInset = UIEdgeInsets.zero
self.tableView.setContentOffset(.zero, animated: true)
}
}