Когда вызывается recordZoneWithIDWasPurgedBlock и recordZoneWithIDWasDeletedBlock? - PullRequest
0 голосов
/ 04 мая 2020

CKFetchDatabaseChangesOperation имеет блоки recordZoneWithIDWasPurgedBlock и recordZoneWithIDWasDeletedBlock. Я предполагаю, что когда пользователь удаляет все данные iCloud, связанные с приложением, вызывается блок очистки, а когда я вручную удаляю зону, вызывается блок удаления.

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

Обработка этих сценариев ios из-за ошибок - это хорошо и легко для меня, но я задаюсь вопросом, когда эти блоки когда-либо назывались? Должен ли я обрабатывать их так же, как я обрабатываю ошибки для удаленных / очищенных зон?

1 Ответ

0 голосов
/ 04 мая 2020

Ошибка моего собственного действия приводила к тому, что пользовательская зона всегда создавалась при запуске приложения, что, очевидно, никогда не вызывало бы удаление блоков и аннулирование всех токенов изменений.

У меня самый расстраивающий тип совета для тех, кто имеет похожая проблема: проверьте свой код! Убедитесь, что вы не создаете пользовательскую зону, прежде чем извлекать изменения базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...