Swift 如何更新Parse.com PFOject子类实例?

Swift 如何更新Parse.com PFOject子类实例?,swift,parse-platform,Swift,Parse Platform,我有以下课程 class Message : PFObject, PFSubclassing { var messageTitle : NSString ... } Message类是Parse.com PFObject类的一个子类 我保存了一系列信息 var messages = [Message]() 当我想要编辑一个时: var message = messages[index] message. messageTitle = "Foo" message.saveInBackgrou

我有以下课程

class Message : PFObject, PFSubclassing {
 var messageTitle : NSString
...
}
Message类是Parse.com PFObject类的一个子类

我保存了一系列信息

var messages = [Message]()
当我想要编辑一个时:

var message = messages[index]
message. messageTitle = "Foo"
message.saveInBackgroundWithBlock({ (success: Bool!, error: NSError!) -> Void in
...
})
我不确定正确的方法是执行查询,还是可以使用数组中的对象保存消息?我得到了重复的记录,因为objectId要么是will,要么与原始记录不同

或者我应该保留一个本地objectId变量?

objectId在成功保存时自动更新,但当然,该更改在回调中可见,而不是在saveInBackgroundWithBlock之后的行中-例如:

var message = messages[index]
message. messageTitle = "Foo"
message.saveInBackgroundWithBlock({ (success: Bool!, error: NSError!) -> Void in
    println(message.objectId)
})

将打印保存后分配的实际id。

但从messages[index]检索的邮件是以这种方式保存的,然后添加到messages数组中。消息数组包含消息对象,这些对象是PFObjects。我不能更新消息的值,然后调用saveinbackground来更新该消息的值吗?我不确定我理解了您的意思-消息是对消息实例的引用数组。如果读取数组的一个元素并将其赋值给一个变量,则实际上是在赋值一个引用,因此对该变量所指向的实例所做的任何更改都会反映到数组的相应元素。你不必再将它添加到数组中,如果这是你的意思不,那不是我的意思。我将PFObjects存储在一个数组中。我假设我可以使用该对象,在设置其变量后调用save,并在复制记录时更新数据库该数组是如何填充的?如果您创建了新实例,并且在解析中没有对现有记录的引用,那么保存将创建新实例。如果数组是从查询填充的,那么更新记录属性和保存应该只是更新