【问题标题】:Swift Parse how to make app works offline?Swift Parse 如何让应用离线工作?
【发布时间】:2016-10-14 18:41:41
【问题描述】:

我正在使用 swift 3.0 进行本地解析

我正在查询以从服务器获取结果。但如果没有连接,它不会显示我们得到的最后结果,因为失去连接。

所以我要做的是保存查询结果以在没有连接时查看它

这是查询:

var query = PFUser.query()

        query = PFQuery(className: "_User")

       // query?.fromLocalDatastore()


        query!.whereKey("objectId", equalTo: PFUser.current()!.objectId!)
        query!.findObjectsInBackground {
            (objects , error) -> Void in

            if error == nil {

                for object in objects! {


                self.usernamelbl.text = object["username"] as! String

                if let userp = PFUser.current()?["photo"] as? PFFile {

                    userp.getDataInBackground {
                        (imageData, error) -> Void in

                        if error == nil {

                            self.profilepic.image = UIImage(data: imageData!)!
                        }
                    }
                    }
                }

现在,如果应用关闭,我如何保存结果并离线查看? 任何帮助将不胜感激

【问题讨论】:

  • 你有很多选择。我假设您正在尝试保存用户图像?如果您愿意,您可以将其保存到文件或将其保存到应用程序中的 CoreData。你想做什么取决于你。
  • 谢谢,我要保存用户信息,并收到其他用户的视频、图像、消息。所以他仍然可以在离线模式下检查它们。有什么想法吗?

标签: ios swift parse-platform swift3


【解决方案1】:

可以设置特定PFQuery 调用的缓存策略。要将副本保存到磁盘,并在再次访问网络之前依赖该副本,请设置 kPFCachePolicyCacheElseNetwork 策略。

然而,根据Parse question,这些缓存的大小显然有一个非常严格的限制。我不确定这些是否仍然适用于 Parse 的开源版本,但如果您想将更多信息保存到磁盘,使用更专用的数据持久性框架可能是合适的,例如 Core Data、SQLite 或 Realm(全面披露:我为 Realm 工作。:) )

出于图像文件的目的,我建议您手动管理磁盘上的缓存,而不是将其存储在 Parse 的缓存中(由于大小限制)。那里有一些很棒的图像缓存库(例如PINCache),可以很容易地做到这一点。

【讨论】:

  • 啊,谢谢,我很感激,这似乎很辛苦,我不知道它是如何工作的,也许我会看看 PINCache 是如何工作的,因为我要保存图像、视频、消息等像那样。再次感谢您!
猜你喜欢
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多