簡體   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