RLMClientResetMode
Objective-C
enum RLMClientResetMode : NSUInteger {}
Swift
@_nonSendable(_assumed) enum RLMClientResetMode : UInt, @unchecked Sendable
クライアントのリセット中のファイルの動作を決定します。
@second: https://mongodb.com/java-j/docs/realm/sync/error-handing/client-reset/
-
バックアップ リモート コピーから相違した Realm のローカル コピーの後に Realm に書き込まれたデータは、Realm ファイルのローカル リカバリ コピーに存在します。 再ダウンロードされた Realm には、最初は Realm がサーバー上でバックアップされていた時点でのデータのみが含まれます。
@see: ``rlmSync_clientResetBackedUpRealmPath`` and ``RLMSyncErrorActionToken`` for more information on accessing the recovery directory and error information. The manual client reset mode handler can be set in two places: 1. As an ErrorReportingBlock argument at ``RLMSyncConfiguration.manualClientResetHandler``. 2. As an ErrorReportingBlock in the ``RLMSyncManager.errorHandler`` property. @see: ``RLMSyncManager.errorHandler`` When an ``RLMSyncErrorClientResetError`` is thrown, the following rules determine which block is executed: - If an error reporting block is set in ``.manualClientResetHandler`` and the ``RLMSyncManager.errorHandler``, the ``.manualClientResetHandler`` block will be executed. - If an error reporting block is set in either the ``.manualClientResetHandler`` or the ``RLMSyncManager``, but not both, the single block will execute. - If no block is set in either location, the client reset will not be handled. The application will likely need to be restarted and unsynced local changes may be lost. @note: The ``RLMSyncManager.errorHandler`` is still invoked under all ``RLMSyncError``s *other than* ``RLMSyncErrorClientResetError``. - see: ``RLMSyncError`` for an exhaustive list.
宣言
Objective-C
RLMClientResetModeManual = 0
Swift
case manual = 0
-
非推奨
RRMClientResetModeDiscardUnsyncedchanges の使用
同期されていないすべてのローカル変更は自動的に破棄され、ローカル状態はサーバーからの最新の状態に自動的に戻ります。 同期されていない変更は、クライアントと リセット後のコールバック ブロックで回復できます。
If ``RLMClientResetModeDiscardLocal`` is enabled but the client reset operation is unable to complete then the client reset process reverts to manual mode. Example) During a destructive schema change this mode will fail and invoke the manual client reset handler. The RLMClientResetModeDiscardLocal mode supports two client reset callbacks -- ``RLMClientResetBeforeBlock``, ``RLMClientResetAfterBlock`` -- which can be passed as arguments when creating the ``RLMSyncConfiguration``. @see: ``RLMClientResetAfterBlock`` and ``RLMClientResetBeforeBlock``
宣言
Objective-C
RLMClientResetModeDiscardLocal = 1
Swift
case discardLocal = 1
-
同期されていないすべてのローカル変更は自動的に破棄され、ローカル状態はサーバーからの最新の状態に自動的に戻ります。 同期されていない変更は、クライアントと リセット後のコールバック ブロックで回復できます。
If ``RLMClientResetModeDiscardUnsyncedChanges`` is enabled but the client reset operation is unable to complete then the client reset process reverts to manual mode. Example) During a destructive schema change this mode will fail and invoke the manual client reset handler. The RLMClientResetModeDiscardUnsyncedChanges mode supports two client reset callbacks -- ``RLMClientResetBeforeBlock``, ``RLMClientResetAfterBlock`` -- which can be passed as arguments when creating the ``RLMSyncConfiguration``. @see: ``RLMClientResetAfterBlock`` and ``RLMClientResetBeforeBlock``
宣言
Objective-C
RLMClientResetModeDiscardUnsyncedChanges = 1
Swift
static var discardUnsyncedChanges: RLMClientResetMode { get }
-
クライアント デバイスは、クライアントのリセット後にサーバーの最新の状態を反映する Realm Realm をダウンロードします。 クライアントのリセットが発生する前からのローカルな変更とサーバー バージョンを統合するために、リカバリ プロセスがローカルで実行されます。
The changes are integrated with the following rules: 1. Objects created locally that were not synced before client reset will be integrated. 2. If an object has been deleted on the server, but was modified on the client, the delete takes precedence and the update is discarded 3. If an object was deleted on the client, but not the server, then the client delete instruction is applied. 4. In the case of conflicting updates to the same field, the client update is applied. If the recovery integration fails, the client reset process falls back to ``RLMClientResetModeManual``. The recovery integration will fail if the "Client Recovery" setting is not enabled on the server. Integration may also fail in the event of an incompatible schema change. The RLMClientResetModeRecoverUnsyncedChanges mode supports two client reset callbacks -- ``RLMClientResetBeforeBlock``, ``RLMClientResetAfterBlock`` -- which can be passed as arguments when creating the ``RLMSyncConfiguration``. @see: ``RLMClientResetAfterBlock`` and ``RLMClientResetBeforeBlock``
宣言
Objective-C
RLMClientResetModeRecoverUnsyncedChanges = 2
Swift
case recoverUnsyncedChanges = 2
-
クライアント デバイスは、サーバーの最新バージョンを反映するオブジェクトを含む Realm をダウンロードします。 クライアントのリセットが発生する前からのローカルな変更とサーバー バージョンを統合するために、リカバリ プロセスがローカルで実行されます。
The changes are integrated with the following rules: 1. Objects created locally that were not synced before client reset will be integrated. 2. If an object has been deleted on the server, but was modified on the client, the delete takes precedence and the update is discarded 3. If an object was deleted on the client, but not the server, then the client delete instruction is applied. 4. In the case of conflicting updates to the same field, the client update is applied. If the recovery integration fails, the client reset process falls back to ``RLMClientResetModeDiscardUnsyncedChanges``. The recovery integration will fail if the "Client Recovery" setting is not enabled on the server. Integration may also fail in the event of an incompatible schema change. The RLMClientResetModeRecoverOrDiscardUnsyncedChanges mode supports two client reset callbacks -- ``RLMClientResetBeforeBlock``, ``RLMClientResetAfterBlock`` -- which can be passed as arguments when creating the ``RLMSyncConfiguration``. @see: ``RLMClientResetAfterBlock`` and ``RLMClientResetBeforeBlock``
宣言
Objective-C
RLMClientResetModeRecoverOrDiscardUnsyncedChanges = 3
Swift
case recoverOrDiscardUnsyncedChanges = 3