我正在查询Parse以返回用户创建的所有Tournament对象的列表。但是,saveEventually()
取消LDS中的对象,因此如果它们具有网络连接,则查询返回空。
override func viewDidLoad() {
super.viewDidLoad()
var query = PFQuery(className:"Tournament")
query.orderByAscending("createdAt")
query.whereKey("createdBy", equalTo: PFUser.currentUser())
query.fromLocalDatastore()
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]!, error: NSError!) -> Void in
if (error == nil) {
self.tournaments = objects;
self.tableView.reloadData()
PFObject.pinAllInBackground(objects)
} else {
NSLog("Error: %@ %@", error, error.userInfo!)
}
}
}
我想保持所有创建的对象在本地缓存,以便可以脱机访问它们。这可能吗?
答案 0 :(得分:0)
您可以将saveInBackgroundWithBlock
与数据结合使用(将其保存到本地数据存储区)。这将同步到LDS和Parse服务器,而不会在网络保存操作完成时从LDS中删除任何内容。
更好的是,您可以为PFQuery创建一个类别,该类别定义了一个名为saveToCacheAndNetworkInBackgroundWithBlock:
的新方法(或更简洁的方法),可以在不使用saveEventually
的情况下执行这两个操作。