列挙
オープン fun 列挙(ClassName :string 、 Block :( oldObject : DeviceRealmObject 、 newObject : DeployRealmObject か。 ) -> 単位)
すでに移行されている Realm 内の対応するオブジェクトへの更新可能なDsyncMutableRealmObject参照にアクセスして、移行する前に Realm から特定のクラスのすべてのオブジェクトを反復処理するための便利なメソッド。 これにより、 型を変更しながらフィールド データのマージや分割、データの移動など、より高度なデータ マッピングを実行できます。
一般的なシナリオの一部を以下に示します。
// Old data model
class MigrationSample: RealmObject {
var firstName: String = "First"
var lastName: String = "Last"
var property: String = "Realm"
var type: Int = 42
}
// New data model
class MigrationSample: RealmObject {
var fullName: String = "First Last"
var renamedProperty: String = "Realm"
var type: String = "42"
}
migrationContext.enumerate("MigrationSample") { oldObject: DynamicRealmObject, newObject: DynamicMutableRealmObject? ->
newObject?.run {
// Merge property
set( "fullName", "${oldObject.getValue<String>("firstName")} ${ oldObject.getValue<String>("lastName") }" )
// Rename property
set("renamedProperty", oldObject.getValue<String>("property"))
// Change type
set("type", oldObject.getValue<Long>("type").toString())
}
}
クリップボードにコピーされた内容
パラメーター
古い邦土内のすべてのインスタンスを反復処理するクラスの名前。
ブロック
古い Realm 内のクラスの各インスタンスに対してトリガーされるコードのブロック。 newObject
は、すでに移行済みの Realm 内の対応するDeployRealmObjectへの参照になり、オブジェクトが削除されている場合は null になります。