Parse platform parse.com更新对象将创建新的对象ID

Parse platform parse.com更新对象将创建新的对象ID,parse-platform,Parse Platform,我是新来解析的。我正在尝试更新已保存在分析后端的对象。我使用GetObjectInBackgroundHitid并提供对象ID。当我尝试用新数据更新时,应用程序告诉我它成功保存了一条新记录,当我查看后端时,我现在有两条具有不同对象ID的记录。下面是我在更新按钮中的代码。在我的应用程序中,它会传入对象ID,但我尝试过用同样的结果对对象ID进行编码 @iAction func updateAccountPressed(发件人:AnyObject){ 当你这样做的时候 ... } else if le

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

@iAction func updateAccountPressed(发件人:AnyObject){

当你这样做的时候

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

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

事实证明,我以某种方式将“更新”按钮与“更新”和“添加”功能链接在一起。删除链接后,该按钮更新良好,没有新的objectID。

感谢您的反馈。当我删除该链接时,会出现错误“无法为“PFObject”类型的值下标”。如果我输入“!”我可以清除该错误在accountInfo之后,但当我这样做时,它仍然在Parse中创建另一条记录。
if error != nil {
    print(error)
} else {
    accountInfo["Type"] = self.pickedAccountType
    accountInfo["NumberOrNickname"] = self.accountNumNickname.text
    accountInfo["InitialBalance"] = self.initialBalance.text
    accountInfo.saveInBackground()
}