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 chavekRLMSyncErrorActionTokenKey
. 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 oApp
for inicializado.O valor da chave
kRLMSyncPathOfRealmBackupCopyKey
no dicionáriouserInfo
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 chavekRLMSyncErrorActionTokenKey
. 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 comotrue
, 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