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.

Propriedades

  • Retorna o antigo RLMSchema. Este é o esquema que descreve o Realm antes da migração ser aplicada.

    Declaração

    Objective-C

    @property (nonatomic, readonly) NS_REFINED_FOR_SWIFT RLMSchema *oldSchema;
  • Retorna o novo RLMSchema. Este é o esquema que descreve o Realm após a migração ser aplicada.

    Declaração

    Objective-C

    @property (nonatomic, readonly) NS_REFINED_FOR_SWIFT RLMSchema *newSchema;

Alterando objetos durante uma 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 como RLMObjects 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 tipo className 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 em NSJSONSerialization 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 argumento value , 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 para newName.

    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.