CKFetchDatabaseChangesOperation
имеет блоки recordZoneWithIDWasPurgedBlock
и recordZoneWithIDWasDeletedBlock
. Я предполагаю, что когда пользователь удаляет все данные iCloud, связанные с приложением, вызывается блок очистки, а когда я вручную удаляю зону, вызывается блок удаления.
Однако, по моему опыту, несколько недель с CloudKit ни разу не вызывался, я пробовал много методов для запуска любого блока, но это никогда не происходит. Вместо этого эти сценарии ios кажутся обработанными из-за ошибок в CKFetchRecordZoneChangesOperation
, которые я позже сделаю. Я получаю CKError.Code.changeTokenExpired
, если зона была удалена, и CKError.Code.userDeletedZone
, если пользователь сам удаляет данные iCloud.
Обработка этих сценариев ios из-за ошибок - это хорошо и легко для меня, но я задаюсь вопросом, когда эти блоки когда-либо назывались? Должен ли я обрабатывать их так же, как я обрабатываю ошибки для удаленных / очищенных зон?