繁体   English   中英

解析:不查询本地数据存储中的已保存对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM