[英]how to use local datastore to save and query data with parse and swift
[英]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.