簡體   English   中英

無法使用解析本地數據存儲來保存和查詢數據

[英]Cannot save and query data with parse local datastore

這是我的代碼,用於保存數據以快速解析localDatastore

@IBAction func addMessage(sender: AnyObject) {

    var newMessage = addMessageText.text

    let message = PFObject(className: "Messages")
    var user = PFUser.currentUser()
    message["messageTextColumn"] = newMessage
    message["user"] = user!.objectId


    message.saveInBackgroundWithBlock {(success: Bool, error: NSError?) -> Void in
        if (success) {
            println("added to Message Class")
           println(user)
            message.saveInBackground()


        } else {
            // Error saving message
        }
    }
}

這就是我如何在messagesListController類中查詢該數據

 @IBOutlet var messageTableView: UITableView!
var messageArray:[String] = ["Lope"]
override func viewDidLoad() {
    super.viewDidLoad()
    retrieveMessagesLocally()
    retrieveMessages()
    }
func retrieveMessagesLocally(){ // function that query the message data from parse local datastore
    let query = PFQuery(className: "Messages")
    query.fromLocalDatastore()
    var currentUser = PFUser.currentUser()
    query.whereKey("user", equalTo: currentUser!.objectId!)
    query.findObjectsInBackground().continueWithBlock {
        (task) -> AnyObject in
        if let error = task.error {
            println("Error: \(error)")
            return task
        }

        println("Retrieved \(task.result.count)")
        return task
    }
}
func retrieveMessages() {
    var query = PFQuery(className:"Messages")
    var user = PFUser.currentUser()
    query.whereKey("user", equalTo:user!.objectId!)
    query.findObjectsInBackgroundWithBlock { [weak self]
        (objects:[AnyObject]?, error:NSError?) -> Void in
        println(objects)
        println("succeed")
        let messages = objects
        for object in objects!{
            if let message = object["messageTextColumn"] as? String {
                println(object)
                self?.messageArray.append(message)

            }

        }

         self?.tableView.reloadData()
    }

}

問題是當我嘗試在沒有Internet連接的情況下打開消息表視圖單元格時,我保存的消息根本沒有出現在消息表視圖單元格中,而且似乎也沒有將數據保存到解析本地數據存儲中。

任何幫助表示贊賞。
謝謝!

您的addMessage方法永遠不會將對象保存到本地數據存儲中,而只會將其保存到服務器,您還應該調用pinInBackground來將對象實際存儲在本地數據存儲中,這在“ 本地數據存儲”文檔中有描述。

您可以通過固定PFObject將其存儲在本地數據存儲中。 像保存一樣,固定PFObject是遞歸的,因此,您要固定的對象所指向的任何對象也將被固定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM