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())
}
}
Conteúdo copiado para a área de transferência
Parâmetros
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.