Какие записи будут загружены, когда CKFetchRecordChangesOperation будет вызван с нулевым токеном?

Будет CKFetchRecordChangesOperation восстановить все записи из контейнера?

Я надеялся, что он загрузит все мои записи, так как я добавил много разных типов записей, но я не получил никого. Я инициализировал это с нулевым токеном.

ссылка говорит: объект CKFetchRecordChangesOperation сообщает об измененных и удаленных записях в указанной зоне записи. Используйте этот тип объекта операции для оптимизации операций выборки для локально управляемых наборов записей. В частности, используйте его, когда вы поддерживаете локальный кеш данных вашей записи и вам необходимо периодически синхронизировать этот кеш с сервером.

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

1 ответ

Решение

CKFetchRecordChangesOperation не имеет ничего общего с CKSubscription. Вместо этого он просто вернет все изменения всем recordTypes.

Документация говорит это о токене изменения:

Токен изменения из предыдущей операции выборки. Это токен, переданный вашему обработчику fetchRecordChangesCompletionBlock во время предыдущей операции выборки. Используйте этот токен, чтобы ограничить возвращаемые данные только теми изменениями, которые произошли с тех пор, как вы в последний раз делали один и тот же запрос на выборку. Если вы укажете nil для этого параметра, объект операции извлекает все записи и их содержимое.

Таким образом, вы просто получите все записи.

Другие вопросы по тегам