열거

열기 fun 열거(className: String, block: (oldObject: DynamicRealmObject, newObject: DynamicMutableRealmObject?) -> 단위)

이미 마이그레이션된 영역의 해당 객체에 대한 업데이트 가능한 DynamicMutableRealmObject 참고에 액세스하여 마이그레이션 전에 영역에서 특정 클래스의 모든 객체를 반복하는 편리한 메서드입니다. 이를 통해 필드 데이터를 병합 또는 분할하거나 유형을 변경하면서 데이터 이동과 같은 고급 데이터 매핑을 수행할 수 있습니다.

몇 가지 일반적인 시나리오는 다음과 같습니다.

// 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())
}
}

매개변수

클래스 이름

이전 영역 의 모든 인스턴스를 반복할 클래스의 이름입니다.

차단

이전 영역 에 있는 클래스의 각 인스턴스 에 대해 트리거될 코드 차단 입니다. newObject 은 이미 마이그레이션된 영역 의 해당 DynamicMutableRealmObject 에 대한 참조이거나 객체 가 삭제된 경우 null입니다.