我正在发出URL请求,并且数据已检索并正确显示。但是,当我更新JSON数据并重新加载应用程序时,不会显示新数据,而只会显示旧数据。
如果设置断点并查看请求,则即使确保在我的URL上更新了数据,响应也是旧的JSON数据。我可以在应用程序中更新数据的唯一方法是,如果我实际上是从模拟器或手机中删除该应用程序并重新安装。
这是我的要求:
func getReviews() {
guard let url = URL(string: "my url") else {
print("Invalid URL")
return
}
let session = URLSession(configuration: .default)
session.dataTask(with: URL(string: url)!) { (data,_,_) in
do {
let fetchedPosts = try JSONDecoder().decode([Review].self, from: data!)
DispatchQueue.main.async {
self.reviews = fetchedPosts
}
}
catch {
print(error.localizedDescription)
}
}.resume()
}
有人遇到这个问题吗?
您可能需要重新加载要显示的任何数据。例如,如果是UITableView
或UICollectionView
,只需使用reloadData()
,如下所示:
DispatchQueue.main.async {
self.reviews = fetchedPosts
self.reviewsView.reloadData()
}