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

Ios 解析:不查询本地数据存储中保存的对象,ios,swift,parse-platform,pfobject,local-datastore,Ios,Swift,Parse Platform,Pfobject,Local Datastore,我目前正在开发一个库存应用程序。我的目标是从Parse中检索对象,然后保存到本地数据存储中。从解析中查询对象并保存它们是可行的(因为控制台消息),但是稍后从本地数据存储中查询不会检索任何内容!这是我的密码: let query = PFQuery(className: "Publication") query.limit = 150 query.selectKeys(["publication_id","publication_Type","publication_Name"])

我目前正在开发一个库存应用程序。我的目标是从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 保存在本地数据存储中”

到目前为止还好吧? 这是我即将从本地数据存储查询时的代码:

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
s save方法都会将它们保存回解析服务器,而不是本地数据存储。查看如何使用
pin
实现您想要的功能


此外,将这些异步调用分派到主队列也没有意义。它们已经在后台队列上执行。在大多数情况下,如果要对UI执行某些操作,并且应该在完成处理程序中执行,则只需将其分派回主队列。

我看不出要将
PFObject
固定到本地数据存储中的位置。也许这就是你的问题

调用任何
PFObject
s save方法都会将它们保存回解析服务器,而不是本地数据存储。查看如何使用
pin
实现您想要的功能


此外,将这些异步调用分派到主队列也没有意义。它们已经在后台队列上执行。在大多数情况下,如果要对UI执行某些操作,并且这些操作应该在完成处理程序中完成,则只需将其分派回主队列。

确定,因此我锁定了对象,但仍然无法检索它们。确定,因此我锁定了对象,但仍然无法检索它们。