[英]Parse: Does not query saved objects in local datastore
我目前正在开发库存应用。 我的目标是从Parse中检索对象,然后保存到本地数据存储中。 从Parse中查询对象并保存它们是可行的(由于控制台消息),但是稍后从本地数据存储区中进行查询不会检索任何内容! 这是我的代码:
let query = PFQuery(className: "Publication")
query.limit = 150
query.selectKeys(["publication_id","publication_Type","publication_Name"])
dispatch_async(dispatch_get_main_queue()) { () -> Void in
query.findObjectsInBackgroundWithBlock({ (pubObject, error) -> Void in
if error == nil {
print("Succesfully retrieved \(pubObject!.count)")
PFObject.saveAllInBackground(pubObject, block: { (success, error) -> Void in
print("Saved \(pubObject!.count) in local DataStore")
})
}
})
}
此消息从XCode控制台发出:
“成功检索到103在本地DataStore中保存了103”
到目前为止一切都好吧? 这是我要从本地数据存储区查询时的代码:
dispatch_async(dispatch_get_main_queue()) { () -> Void in
let bookQuery = PFQuery(className: "Publication")
.fromLocalDatastore()
bookQuery.whereKey("publication_Type", equalTo: "Book")
bookQuery.findObjectsInBackgroundWithBlock { (bookObject, error) -> Void in
if error == nil{
print("Books found: \(bookObject!.count)")
self.displayData(bookObject!)
}
}
}
我从控制台得到:找到的书:0。
是什么赋予了? 我究竟做错了什么? 我读,读,读。 没有。 我以为“ .ignoreACL()”可以工作,但是没有。 谁能帮我吗?
我看不到将PFObject
固定到本地数据存储中的位置。 也许那是你的问题。
调用任何PFObject
的save方法会将它们保存回解析服务器,而不是本地数据存储。 查找如何使用pin
来完成所需的操作。
同样,将这些异步调用分派到主队列也没有任何意义。 它们已经在后台队列上执行。 在大多数情况下,如果您要对UI进行操作,则只需要分派回主队列即可,这应该在完成处理程序中完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.