如何使用本地数据存储区通过parse和swift

时间:2015-07-04 05:11:18

标签: xcode swift parse-platform local-datastore

在我的应用中。我的代码将有用户列表和消息列表 邮件列表代码(从解析中加载列表)

    @IBOutlet var messageTableView: UITableView!
var messageArray:[String] = ["Lope"]
override func viewDidLoad() {
    super.viewDidLoad()
    retrieveMessages()
    }
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()
    }

}






override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return messageArray.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("messageCell", forIndexPath: indexPath) as UITableViewCell
        cell.textLabel?.text = messageArray[indexPath.row]
        return cell
} 

添加消息代码(添加要解析的新消息)

class addMessageViewController: UIViewController {

@IBOutlet weak var addMessageText: UITextField!
@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
        }
    }
}

我想使用解析本地数据存储区将这些数据存储在我的应用程序本地,以便我的应用程序不必一直使用互联网连接,当用户没有连接到互联网时,用户列表和消息列表仍然会出现。

问题是我不知道本地数据存储区应该使用哪种方法我应该将本地数据存储区代码放在“添加消息代码”中以保存新消息,并在“消息列表代码”中查询到我的本地应用程序,如果有任何更新,它将在我们加载本地“消息列表”后稍后执行。任何帮助表示赞赏。 谢谢!

1 个答案:

答案 0 :(得分:0)

要从Parse数据存储开始,您需要从您的应用代理中选择加入:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.


        // Opt in for Parse Local data store *Before Parse.setApplicationId*
        Parse.enableLocalDatastore()

        Parse.setApplicationId("YOUR PARSE APP ID",
            clientKey: "YOUR PARSE CLIENT ID")

       //... other code that you might need when app did finish launching

      return true
 }

稍后当您保存新的message时,您将使用:

message.saveEventually()

这将保存在本地数据存储中,并最终(当互联网可用时)保存在远程数据存储中。

从这里您可能也对使用Parse数据固定感兴趣。 有关详细信息,请参阅解析文档。

希望这有帮助