拉动刷新不起作用

时间:2016-12-20 15:21:25

标签: ios swift swift3 alamofire

我正在使用Alamofire在Swift 3中构建我的应用程序。我将JSON数据放入列表视图中。每次我刷新内容而不是刷新内容时,它只是在列表视图中的列表底部添加更多项目,而不是刷新可见列表。我不知道我做错了什么,到目前为止,我的代码是:

$roleuser = User:find(1);

2 个答案:

答案 0 :(得分:5)

您的问题在这里:

postsinput.append(postinput.init(mainImage: mainImage, name: title, author: author, summary: summary, content: content))

您不断向旧数据追加新数据。如果要在添加新数据之前完全清除旧数据,只需删除postsinput数组中的所有元素。

答案 1 :(得分:1)

您在刷新时的任务是刷新列表中现有的数据,并添加新项目(如果有)。因此,您需要做的就是每次刷新时不再继续将项添加到列表中,而只是提供从服务器到tableView的新列表。您已将阵列提供为postsinput,因此请务必在添加之前删除所有项目。以下是您可以进行更改的代码。

 func parseData(JSONData : Data) {

    postsinput.removeAll()

    do {

        ...
        ...
               if let imageUrl = post["image"] as? String {
                    let mainImageURL = URL(string: imageUrl )
                    let mainImageData = NSData(contentsOf: mainImageURL!)
                    let mainImage = UIImage(data: mainImageData as! Data)

                    postsinput.append(postinput.init(mainImage: mainImage, name: title, author: author, summary: summary, content: content))
                }
            }
            DispatchQueue.main.async {
                self.tableView.reloadData()
            }
       ...
       ...
}