RLMMigration
Objective-C
@interface RLMMigration : NSObject
Swift
@_nonSendable(_assumed) class RLMMigration : NSObject
RLMMigration
instâncias encapsulam informações destinadas a facilitar a migração de um esquema.
Uma instância RLMMigration
é passada para um bloco RLMMigrationBlock
definido pelo usuário ao atualizar a versão de um Realm. Essa instância fornece acesso ao reconhecimento de data center antigos e novos, aos objeto no Realm e fornece funcionalidade para modificar o Realm durante a migração.
-
Enumera todos os objetos de um determinado tipo no Realm, fornecendo as versões antigas e novas de cada objeto. Dentro do bloco, as propriedades do objeto só podem ser acessadas usando assinatura de chave.
Aviso
Todos os objetos retornados são de um tipo específico para a migração atual e não devem ser convertidos em
className
. Em vez disso, trate-os comoRLMObject
s e use a assinatura de chaves para acessar as propriedades.Declaração
Objective-C
- (void)enumerateObjects:(nonnull NSString *)className block:(nonnull RLMObjectMigrationBlock)block;
Parâmetros
className
O nome da classe
RLMObject
para enumerar. -
Cria e retorna uma instância
RLMObject
do tipoclassName
no Realm que está sendo migrado.O argumento
value
é utilizado para preencher o objeto. Pode ser um objeto compatível com codificação key-value, uma array ou dicionário retornado dos métodos emNSJSONSerialization
ou uma array contendo um elemento para cada managed propriedade. Uma exceção será lançada se alguma propriedade obrigatória não estiver presente e essas propriedades não tiverem sido definidas com valores padrão.Ao passar um
NSArray
como argumentovalue
, todas as propriedades devem estar presentes, válidas e na mesma ordem que as propriedades definidas no modelo.Declaração
Objective-C
- (nonnull RLMObject *)createObject:(nonnull NSString *)className withValue:(nonnull id)value;
Parâmetros
className
O nome da classe
RLMObject
a ser criada.value
O valor utilizado para preencher o objeto.
-
Exclui um objeto de um Realm durante uma migração.
É permitido chamar este método de dentro do bloco passado para
-[enumerateObjects:block:]
.Declaração
Objective-C
- (void)deleteObject:(nonnull RLMObject *)object;
Parâmetros
object
objeto a ser excluído do Realm que está sendo migrado.
-
Exclui os dados da classe com o nome fornecido.
Todos os objetos da classe fornecida serão excluídos. Se a subclasse
RLMObject
não existir mais em seu programa, todos os metadados restantes da classe serão removidos do Arquivo de Realm.Declaração
Objective-C
- (BOOL)deleteDataForClassName:(nonnull NSString *)name;
Parâmetros
name
O nome da classe
RLMObject
a ser excluída.Valor de retorno
Um valor booleano indicando se há algum dado para excluir.
-
Renomeia uma propriedade da classe fornecida de
oldName
paranewName
.Declaração
Objective-C
- (void)renamePropertyForClass:(nonnull NSString *)className oldName:(nonnull NSString *)oldName newName:(nonnull NSString *)newName;
Parâmetros
className
O nome da classe cuja propriedade deve ser renomeada. Essa classe deve estar presente nos esquemas antigos e novos do Realm.
oldName
O antigo nome da propriedade persistente para que a propriedade seja renomeada. Não deve haver uma propriedade com este nome na classe, conforme definido pelo novo esquema Realm.
newName
O novo nome da propriedade persistente para a propriedade a ser renomeada. Não deve haver uma propriedade com este nome na classe, conforme definido pelo esquema antigo do Realm.