更新RLMObject是Swift / IOS

时间:2014-07-26 11:15:34

标签: ios swift realm

我正在尝试更新Realm中RLMObject的现有实例。

我找不到这样做的方法..

请举个例子。

我可以保存和删除对象,但无法弄清楚如何使用以下方法更新对象:

//Find Existing 
let predicate = NSPredicate(format: "formname = %@",formname)
var localTypes = FormTypeLocal.objectsWithPredicate(predicate)
if (localTypes.count == 1 ){
var existingForm : FormTypeLocal = localTypes[0] as FormTypeLocal     
existingForm.customProp = "newVal"
//Now I need to update?????

let realm = RLMRealm.defaultRealm()
//
// Add to the Realm inside a transaction
realm.beginWriteTransaction()
realm.addObject(newForm)
realm.commitWriteTransaction()
//Delete
realm.beginWriteTransaction()
realm.deleteObject(newForm)
realm.commitWriteTransaction()

1 个答案:

答案 0 :(得分:6)

您正走在正确的轨道上,您只需要确保您的更新是在写入交易中完成的。

使用Realm,只要您在写入事务中修改/更新Realm对象,这些更改就会保留。例如:

let realm = RLMRealm.defaultRealm()
realm.beginWriteTransaction()
// Find objects
var localTypes = FormTypeLocal.objectsWhere("formname = \(formname)")
// Update one of those objects
var existingForm = localTypes[0] as FormTypeLocal
existingForm.customProp = "newVal"
// Wrap up transaction
realm.commitWriteTransaction()

我们正在使用我们的Swift界面来支持泛型,因此as FormTypeLocal将来不再需要。{/ p>