2

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()
4

1 に答える 1

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、将来的には必要ありません。

于 2014-07-28T19:32:46.167 に答える