parse.com更新对象会创建新的对象ID

时间:2015-10-06 02:41:52

标签: parse-platform

我是Parse的新手。我正在尝试更新已保存在解析后端的对象。我使用getObjectInBackgroundWithID并提供对象ID。当我尝试使用新数据进行更新时,应用程序告诉我它成功保存了新记录,当我查看后端时,我现在有两个具有不同对象ID的记录。下面是更新按钮中的代码。在我的应用程序中,它传入了对象ID,但我尝试使用相同的结果对对象ID进行硬编码。

@IBAction func updateAccountPressed(sender:AnyObject){

    let query = PFQuery(className:"Accounts")
    query.getObjectInBackgroundWithId("dS7fHCoabI") {
        (accountInfo: PFObject?, error: NSError?) -> Void in
        if error != nil {
            print(error)
        } else if let accountInfo = accountInfo {

            accountInfo["Type"] = self.pickedAccontType
            accountInfo["NumberOrNickname"] = self.accountNumNickname.text
            accountInfo["InitialBalance"] = self.initialBalance.text
            accountInfo.saveInBackground()
        }
    }

2 个答案:

答案 0 :(得分:0)

当你这样做时

...
} else if let accountInfo = accountInfo {
...

您实际上正在创建一个名为accountInfo的新变量,并将您获取的对象分配给它。然后,您在刚创建的新saveInBackground()上调用PFObject方法,从而在Parse中创建新记录。只需更改if声明:

if error != nil {
    print(error)
} else {
    accountInfo["Type"] = self.pickedAccountType
    accountInfo["NumberOrNickname"] = self.accountNumNickname.text
    accountInfo["InitialBalance"] = self.initialBalance.text
    accountInfo.saveInBackground()
}

答案 1 :(得分:0)

事实证明我以某种方式将我的更新按钮与我的更新和添加功能相关联。删除链接后,它会更新,没有新的objectID。