我正在使用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!)!
}
}
}
}
现在,如果应用关闭,我如何保存结果并离线查看? 任何帮助将不胜感激
答案 0 :(得分:2)
可以设置特定PFQuery
来电的缓存政策。要将副本保存到磁盘,并在再次点击网络之前依赖该副本,请设置kPFCachePolicyCacheElseNetwork
策略。
但是根据这个Parse question,显然对这些缓存的大小有一个非常严格的限制。我不确定那些仍然适用于Parse的开源版本,但如果你想将更多信息保存到磁盘,可能适合使用更专用的数据持久性框架,如Core Data,SQLite或领域(完全披露:我为Realm工作。:))
出于图像文件的目的,我建议您手动管理磁盘上的缓存,而不是将其存储在Parse的缓存中(由于大小限制)。有一些很棒的图像缓存库(如PINCache),这使得它非常容易。