swift 4 UIRefeshControl前的空UITableView

swift 4 UIRefeshControl前的空UITableView,swift,tableview,swift4,Swift,Tableview,Swift4,大家好! 我在更新数据方面有点问题。 我使用JSON-RPC从后端获取信息,并填充我的表视图单元格。 我对我的TableView实现了UIRefreshControl,所以现在当我拉刷新时,它会在旧信息的基础上提供新信息。 所以我有一个产品列表,当我添加一些产品并刷新tableView以获取更新信息时,tableView会给我旧信息,并在旧信息的基础上提供新信息 在我从JSON获取更新信息之前,有没有办法清空表 //那是我的JSON func getJSONresponse() { ge

大家好! 我在更新数据方面有点问题。 我使用JSON-RPC从后端获取信息,并填充我的表视图单元格。 我对我的TableView实现了UIRefreshControl,所以现在当我拉刷新时,它会在旧信息的基础上提供新信息。 所以我有一个产品列表,当我添加一些产品并刷新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)
    }
}

请使用
数组绑定
UITableView
。然后首先从JSON获取的数据更新此
数组
(清空它并放入新数据),然后调用
UITableView
reload。

请使用
数组
绑定
UITableView
。然后首先从JSON中获取的数据更新这个
数组
(清空它并放入新数据),然后调用
UITableView
reload。

您必须将UITableView绑定到一个数组,有些人还可能将其称为数据源

基本上,流程如下:

1) 创建一个可变数组/数据源(这将保存所有JSON)

2) 对应UITableView行数方法返回此数组/数据源的计数

3) 当您按下刷新按钮时。删除数组/数据源的所有内容(removeAll)

4) 从后端收到响应后,将它们添加到阵列/数据源,并调用UITableView对象上的重载数据


希望有帮助。代码和繁荣

您必须将UITableView与绑定到一个数组,有些人可能还将其称为数据源

基本上,流程如下:

1) 创建一个可变数组/数据源(这将保存所有JSON)

2) 对应UITableView行数方法返回此数组/数据源的计数

3) 当您按下刷新按钮时。删除数组/数据源的所有内容(removeAll)

4) 从后端收到响应后,将它们添加到阵列/数据源,并调用UITableView对象上的重载数据



希望有帮助。代码和繁荣

向我们展示您的代码,以及您迄今为止尝试的内容。快速方法可以是在刷新控件的操作方法中清空数组。清空数据源,然后向数据源输入新数据,然后重新加载表。我已经更新了代码,请检查它。非常感谢,这对我很有效:)向我们展示您的代码,您到目前为止尝试了什么。快速方法可以是在刷新控件的操作方法中清空数组。清空数据源,然后向数据源输入新数据,然后重新加载表。我已经更新了代码,请检查它。非常感谢,这对我很有效:)我应该传递空数据而不是新数据吗?你能帮我举个例子吗?非常感谢,我能做到:)@Аааааааабаааааааааааа1072?你能帮我举个例子吗?非常感谢,我能做到:)@Ааааааааааааааааааааа1072!别担心!!很乐意帮忙。如果这个答案帮助你实现了你想要实现的目标。那么请把它标记为正确的,这样它在将来会帮助其他人。谢谢你,那帮了很多忙!别担心!!很乐意帮忙。如果这个答案帮助你实现了你想要实现的目标。那么请把它标记为正确的,以便将来帮助别人