enumerar

abrir Diversão enumerar(className: String, block: (antigoObject: DinâmicoRealmObject, newObject: dynamicMutableRealmObject?) -> Unidade)

Método de conveniência para iterar todos os objeto de uma determinada classe do Realm antes da migração com acesso a uma referência atualizável do dynamicMutableRealmObject ao objeto correspondente no Realm já migrado. Isso torna possível fazer mapeamentos de dados mais avançados, como mesclar ou dividir dados de campo ou mover dados enquanto altera o tipo.

Alguns cenários comuns são mostrados abaixo:

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

Parâmetros

nome da turma

o nome da classe para a qual iterar todas as instâncias no antigo Realm.

noum: bloco ; verb: bloquear

bloco de código que será acionado para cada instância da classe no antigo Realm. O newObject será uma referência ao DynamicMutableRealmObject correspondente no Realm já migrado ou nulo se o objeto tiver sido excluído.