Swift Parse如何使应用程序脱机工作?

时间:2016-10-14 18:41:41

标签: ios swift parse-platform swift3

我正在使用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!)!
                        }
                    }
                    }
                }

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

1 个答案:

答案 0 :(得分:2)

可以设置特定PFQuery来电的缓存政策。要将副本保存到磁盘,并在再次点击网络之前依赖该副本,请设置kPFCachePolicyCacheElseNetwork策略。

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

出于图像文件的目的,我建议您手动管理磁盘上的缓存,而不是将其存储在Parse的缓存中(由于大小限制)。有一些很棒的图像缓存库(如PINCache),这使得它非常容易。