RLMRealmConfiguration

Objective-C

@interface RLMRealmConfiguration : NSObject <NSCopying>

Swift

@_nonSendable(_assumed) class RLMRealmConfiguration : NSObject, NSCopying

Uma instância RLMRealmConfiguration descreve as diferentes opções usadas para criar uma instância de um Realm.

RLMRealmConfiguration instâncias são simplesmente NSObjects. Ao contrário RLMRealms e RLMObjects, eles podem ser compartilhados livremente entre threads, desde que você não os altere.

Criar objetos de configuração para subconjuntos de classes (definindo a propriedade objectClasses ) pode ser caro. Por esse motivo, normalmente você desejará armazenar em cache e reutilizar um único objeto de configuração para cada configuração distinta, em vez de criar um novo objeto sempre que abrir um Realm.

Configuração padrão

  • Retorna a configuração padrão usada para criar Realms quando nenhuma outra configuração é explicitamente especificada (ou seja, +[RLMRealm defaultRealm]).

    Declaração

    Objective-C

    + (nonnull instancetype)defaultConfiguration;

    Swift

    class func `default`() -> Self

    Valor de retorno

    A configuração padrão do Realm.

  • Define a configuração padrão para o RLMRealmConfiguration fornecido.

    Declaração

    Objective-C

    + (void)setDefaultConfiguration:(nonnull RLMRealmConfiguration *)configuration;

    Swift

    class func setDefault(_ configuration: RLMRealmConfiguration)

    Parâmetros

    configuration

    A nova configuração padrão do Realm.

Propriedades

  • A URL local do Arquivo de Realm. Mutuamente exclusivo com inMemoryIdentifier; definir uma das duas propriedades eliminará automaticamente a outra.

    Declaração

    Objective-C

    @property (nonatomic, copy, nullable) NSURL *fileURL;

    Swift

    var fileURL: URL? { get set }
  • Uma string usada para identificar um determinado Realm na memória. Mutuamente exclusivo com fileURL e seedFilePath. A definição de um identificador na memória eliminará automaticamente os outros dois.

    Declaração

    Objective-C

    @property (nonatomic, copy, nullable) NSString *inMemoryIdentifier;

    Swift

    var inMemoryIdentifier: String? { get set }
  • Uma chave de 64 bytes para utilizar para criptografar os dados, ou nil se a criptografia não estiver habilitada.

    Declaração

    Objective-C

    @property (nonatomic, copy, nullable) NSData *encryptionKey;

    Swift

    var encryptionKey: Data? { get set }
  • Se o Realm deve ser aberto no modo somente leitura.

    Para Realms não sincronizados, isso é necessário para poder abrir Arquivo de Realm que não são graváveis ou estão em um diretório que não é gravável. Isso só deve ser usado em arquivos que não serão modificados por qualquer pessoa enquanto estiverem abertos, e não apenas para obter uma visualização somente para leitura de um arquivo que pode ser gravado por outro thread ou processo. A abertura no modo somente leitura requer a desativação da coordenação de leitor/gravador do Realm, portanto, a confirmação de uma transação de escrita de outro processo resultará em falhas.

    Os Realm sincronizados devem ser sempre graváveis (caso contrário, nenhuma sincronização poderia acontecer), e isso apenas não permite a execução de transação de escrita no Realm. Além disso, ele ignorará algumas gravações automáticas feitas no Realm, como para inicializar o esquema do Realm. A configuração readOnly = YES não é estritamente necessária para os Realms aos quais o usuário de sincronização não tem acesso de gravação, mas é altamente recomendada, pois melhorará a comunicação de erros e detectará alguns erros mais cedo.

    Os domínios que usam a sincronização baseada em query não podem ser abertos no modo somente leitura.

    Declaração

    Objective-C

    @property (nonatomic) BOOL readOnly;

    Swift

    var readOnly: Bool { get set }
  • A versão atual do esquema.

    Declaração

    Objective-C

    @property (nonatomic) uint64_t schemaVersion;

    Swift

    var schemaVersion: UInt64 { get set }
  • O bloco que migra o Realm para a versão atual.

    Declaração

    Objective-C

    @property (nonatomic, copy, nullable) RLMMigrationBlock migrationBlock;

    Swift

    var migrationBlock: RLMMigrationBlock? { get set }
  • Se o Arquivo de Realm deve ser recriado com o esquema fornecido se uma migração for necessária. Esse é o caso quando o esquema armazenado é diferente do esquema fornecido ou a versão do esquema armazenado é diferente da versão nessa configuração. Configurar esta propriedade para YES exclui o arquivo se uma migração fosse exigida ou executada de outra forma.

    Observação

    Definir essa propriedade como YES não desabilita as migrações de formato de arquivo.

    Declaração

    Objective-C

    @property (nonatomic) BOOL deleteRealmIfMigrationNeeded;

    Swift

    var deleteRealmIfMigrationNeeded: Bool { get set }
  • Um bloco chamado ao abrir um Realm pela primeira vez durante a vida útil de um processo para determinar se ele deve ser compactado antes de ser retornado ao usuário. É passado o tamanho total do arquivo (dados + espaço livre) e o total de bytes usados pelos dados no arquivo.

    Retorne YES para indicar que uma tentativa de compactar o arquivo deve ser feita. A compactação será ignorada se outro processo estiver acessando-a.

    Declaração

    Objective-C

    @property (nonatomic, copy, nullable) RLMShouldCompactOnLaunchBlock shouldCompactOnLaunch;

    Swift

    var shouldCompactOnLaunch: RLMShouldCompactOnLaunchBlock? { get set }
  • As classes managed pelo Realm.

    Declaração

    Objective-C

    @property (nonatomic, copy, nullable) NSArray *objectClasses;

    Swift

    var objectClasses: [Any]? { get set }
  • O número máximo de versões ativas no Arquivo de Realm antes que uma exceção seja lançada ao tentar iniciar uma transação de escrita.

    O Realm fornece isolamento de snapshot MVCC, o que significa que as gravações em um thread não substituem os dados que estão sendo lidos em outro thread e, em vez disso, gravam uma nova cópia desses dados. Quando um Realm é atualizado, ele atualiza para a versão mais recente dos dados e libera as versões antigas, permitindo que elas sejam substituídas por transação de escrita subsequentes.

    Em circunstâncias normais, isso não é um problema, mas se o número de versões ativas aumentar demais, isso terá um efeito negativo no tamanho do arquivo no disco. Isso pode acontecer ao realizar gravações em muitos threads diferentes de uma só vez, ao manter objetos congelados por um longo período de tempo ou ao realizar longas operações em threads em segundo plano que não permitem a atualização do Realm.

    Definir essa propriedade como um valor diferente de zero faz com que exceder o número de versões definido gere uma exceção. Isso pode ser usado com um valor baixo durante o desenvolvimento para ajudar a identificar locais que podem ser problemáticos, ou no uso de produção para fazer com que o aplicativo falhe em vez de produzir um Arquivo de Realm que é muito grande para ser aberto.

    Declaração

    Objective-C

    @property (nonatomic) NSUInteger maximumNumberOfActiveVersions;

    Swift

    var maximumNumberOfActiveVersions: UInt { get set }
  • Ao abrir o Realm pela primeira vez, em vez de criar um arquivo vazio, o arquivo Realm será copiado do caminho do arquivo de semente fornecido e usado em vez disso. Isso pode ser usado para abrir um Arquivo de Realm com dados pré-preenchidos.

    Se um Arquivo de Realm já existir no caminho de destino da configuração, o arquivo de semente não será copiado e o Realm já existente será aberto em seu lugar.

    Observe que, para usar esse parâmetro com uma configuração de Realm sincronizada, o Realm semente deve ser copiado adequadamente para um destino com [RLMRealm writeCopyForConfiguration:] primeiro.

    Esta opção é mutuamente exclusiva com inMemoryIdentifier. Definir um seedFilePath eliminará o inMemoryIdentifier.

    Declaração

    Objective-C

    @property (nonatomic, copy, nullable) NSURL *seedFilePath;

    Swift

    var seedFilePath: URL? { get set }