【发布时间】:2020-10-26 04:31:19
【问题描述】:
经过数小时的搜索,我需要您的帮助。我已经为 iOS 设置了一个程序,显示我的私人烹饪书的食谱。食谱存储在我的网络服务器上的 json 文件中。我在我的 MAC 上使用另一个应用程序来更新这个 json 文件中的配方并将其存储在我的网络服务器上。不幸的是,我的 iOS 应用程序中没有显示更新的食谱。 iOS 应用程序总是显示旧数据 - 我猜它们是在第一次安装应用程序后本地存储在我的 iPhone/iPad 上的?
如何强制在我的 iPhone/iPad 上每次启动 iOS 应用程序时使用来自网络服务器的实际 json 数据,而不是旧的。
我通过从 viewDidLoad() 调用的这个函数检索数据,在 UITableView 的 reloadData() 显示食谱的标题之前
func initKochbuch() {
let url = URL(string: selektiertesKochbuch)!
let urlSession = URLSession.shared
let task = urlSession.dataTask(with: url) { (data, response, error) in
guard let data = data else {
debugPrint("Fehler beim Laden", error ?? "Unbekannter Fehler")
return
}
self.kochbuch_local.rezepte = try! JSONDecoder().decode([Rezept].self, from: data)
self.initRezeptAnsicht()
OperationQueue.main.addOperation {self.tableView.reloadData()}
}
task.resume()
}
我还需要做什么?感谢您的支持。
【问题讨论】:
-
在 main 中尝试 reloadData()。 DispatchQueue.main.async { reloadData() }
-
由于配置原因,您的
URLSession可能会缓存 JSON。请查看this 回答是否解决了您的问题。 -
@Matic Oblak:谢谢 - 这是解决方案,现在可以使用