我正在使用Alamofire在Swift 3中构建我的应用程序。我将JSON数据放入列表视图中。每次我刷新内容而不是刷新内容时,它只是在列表视图中的列表底部添加更多项目,而不是刷新可见列表。我不知道我做错了什么,到目前为止,我的代码是:
$roleuser = User:find(1);
答案 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()
}
...
...
}