RLMSyncError

Objective-C

enum RLMSyncError : NSInteger {}

Swift

typealias RLMSyncError.Code._ErrorType = RLMSyncError

Um erro relacionado a um problema que pode ser relatado pelo manipulador de erros do gerenciador de sincronização ou um chamada de resposta de chamada em uma API relacionada à sincronização que executa trabalho assíncrono.

  • Um erro que indica um problema com a sessão (um Realm específico aberto para sincronização).

    Declaração

    Objective-C

    RLMSyncErrorClientSessionError = 4

    Swift

    case clientSessionError = 4
  • Um erro que indica um problema com um usuário específico.

    Declaração

    Objective-C

    RLMSyncErrorClientUserError = 5

    Swift

    case clientUserError = 5
  • Um erro que indica um problema interno e irrecuperável com o mecanismo de sincronização subjacente.

    Declaração

    Objective-C

    RLMSyncErrorClientInternalError = 6

    Swift

    case clientInternalError = 6
  • Um erro que indica que o Realm precisa ser redefinido.

    Um Realm sincronizado pode precisar ser redefinido porque o Atlas App Services encontrou um erro e precisou ser restaurado a partir de um backup. Se a cópia de backup do Realm remoto for de uma versão anterior à cópia local do Realm, o servidor solicitará ao cliente para redefinir o Realm.

    O processo de redefinição é o seguinte: a cópia local do Realm é copiada para um diretório de recuperação por segurança e, em seguida, excluída do local original. Da próxima vez que o Realm para esse valor da partição for aberto, o Realm será automaticamente baixado do Atlas App Services e poderá ser usado normalmente.

    Os dados gravados no Realm após a cópia local do Realm particionar da cópia remota de backup estarão presentes na cópia de recuperação local do Arquivo de Realm. O Realm rebaixado conterá inicialmente apenas os dados presentes no momento em que o Realm foi copiado no servidor.

    O processo de reinício do cliente pode ser iniciado de duas maneiras.

    O dicionário userInfo contém um objeto de token opaco sob a chave kRLMSyncErrorActionTokenKey. Este token pode ser passado para +[RLMSyncSession immediatelyHandleError:] para executar imediatamente o processo de reinício do cliente . Isso só deve ser feito depois que seu aplicativo fechar e invalidar todas as instâncias do Realm ofensivo em todos os threads (observe que os pools de liberação automática podem dificultar a garantia).

    Se +[RLMSyncSession immediatelyHandleError:] não for chamado, o processo de reinício do cliente será realizado automaticamente na próxima vez que o aplicativo for iniciado e o App for inicializado.

    O valor da chave kRLMSyncPathOfRealmBackupCopyKey no dicionário userInfo descreve o caminho da cópia recuperada do Realm. Essa cópia não será realmente criada até que o processo de reinício do cliente seja iniciado.

    Veja

    -[NSError rlmSync_errorActionToken], -[NSError rlmSync_clientResetBackedUpRealmPath]

    Declaração

    Objective-C

    RLMSyncErrorClientResetError = 7

    Swift

    case clientResetError = 7
  • Um erro que indica que o usuário não tem permissão para executar uma operação em um Realm sincronizado. Por exemplo, um usuário pode receber esse erro se tentar abrir um Realm ao qual não tem pelo menos acesso de leitura, ou escrever em um Realm ao qual ele só tem acesso de leitura.

    Esse erro também pode ocorrer se um usuário abrir incorretamente um Realm para o qual tem permissões somente de leitura sem usar as APIs do asyncOpen() .

    Um Realm que recebe um erro de permissão negada é, por padrão, sinalizado para que sua cópia local seja excluída na próxima vez que o aplicação for iniciado.

    O dicionário userInfo contém um objeto de token opaco sob a chave kRLMSyncErrorActionTokenKey. Este token pode ser passado para +[RLMSyncSession immediatelyHandleError:] para excluir imediatamente a cópia local. Isso só deve ser feito depois que seu aplicativo fechar e invalidar todas as instâncias do Realm ofensivo em todos os threads (observe que os pools de liberação automática podem dificultar a garantia).

    Aviso

    É altamente recomendável que, se um Realm encontrar um erro de permissão negada, seus arquivos sejam excluídos antes de tentar reabri-lo.

    Veja

    -[NSError rlmSync_errorActionToken]

    Declaração

    Objective-C

    RLMSyncErrorPermissionDeniedError = 9

    Swift

    case permissionDeniedError = 9
  • Um erro que indica que o servidor rejeitou as assinaturas de flexible sync solicitadas.

    Declaração

    Objective-C

    RLMSyncErrorInvalidFlexibleSyncSubscriptions = 10

    Swift

    case invalidFlexibleSyncSubscriptions = 10
  • Um erro que indica que o servidor reverteu uma gravação feita por este cliente. Isso pode acontecer devido a não ter permissão de escrita ou porque um objeto foi criado em um Realm de Flexible Sync que não corresponde a nenhuma assinatura ativa.

    Este erro é informativo e não requer nenhum tratamento explícito.

    Declaração

    Objective-C

    RLMSyncErrorWriteRejected = 11

    Swift

    case writeRejected = 11
  • Ocorreu um erro de conexão sem um código de erro mais específico.

    O Realm lida internamente com a repetição de conexões com backoffs apropriados, portanto, os erros de conexão são normalmente registrados e não relatados ao manipulador de erros. A exceção é se RLMSyncConfiguration.cancelAsyncOpenOnNonFatalErrors estiver definido como true, caso em que as aberturas assíncronas serão canceladas em falhas de conexão e o erro será relatado ao manipulador de conclusão.

    Observe que os tempos limite de conexão são relatados como (errorDomain: NSPosixErrorDomain, erro: ETIMEDOUT) e não como um desses códigos de erro.

    Declaração

    Objective-C

    RLMSyncErrorConnectionFailed = 12

    Swift

    case connectionFailed = 12
  • A conexão com o servidor falhou devido a um problema de TLS, como um certificado inválido.

    Declaração

    Objective-C

    RLMSyncErrorTLSHandshakeFailed = 13

    Swift

    case tlsHandshakeFailed = 13
  • O servidor encontrou um erro que deseja que o usuário saiba, mas não é necessariamente fatal.

    Um erro com esse código pode indicar que a sincronização não está habilitada ou está tentando se conectar a um aplicativo de servidor de borda.

    Declaração

    Objective-C

    RLMSyncErrorServerWarning = 14

    Swift

    case serverWarning = 14