【问题标题】:Reload data of a json file after being updated更新后重新加载json文件的数据
【发布时间】: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:谢谢 - 这是解决方案,现在可以使用

标签: ios json refresh


【解决方案1】:

可能性很小:

  1. 希望您不要将数据存储在本地(coredata/plist/任何文件),而是将其加载到应用程序的任何位置。
  2. 您的网络服务器可能正在缓存旧数据,请检查一次。
  3. 查看您是否有任何用于测试目的但在实际实施后未删除的硬编码示例数据。

希望这会有所帮助。

【讨论】:

  • 与 Matic Oblak 的提示一起配置 URLSession 它解决了绕过缓存数据的问题
猜你喜欢
  • 2019-10-11
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 2019-12-24
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
相关资源
最近更新 更多