Я работаю над облачной синхронизацией в моем приложении (модель «Маленькие данные, все устройства», с пользовательской зоной в частной базе данных).Что такое clientChangeTokenData в CKModifyRecordsOperation?
CKModifyRecordsOperation
содержит clientChangeTokenData
свойство NSData
типа, который описан в документации следующим образом:
При изменении записей из операции выборки, укажите клиент-данные, генерируемые лексема, используя это свойство, чтобы указать, какую версию запись, которую вы в последний раз модифицировали. Сравните токен данных, который вы поставили в токен данных, в следующей записи, чтобы подтвердить, что сервер успешно получил последний запрос на изменение устройства.
Я не понимаю, почему я должен беспокоиться, учитывая, что с каждым запросом я получаю блок завершения, который сообщает мне, успешно ли сервер получил мой запрос. Почему мне нужно вручную сравнить этот токен клиента?
Указывает clientChangeTokenData
, чтобы правильно обрабатывать мой прецедент? Я отслеживаю локальные изменения данных и выталкиваю все в очереди при каждом изменении данных. Удаленные изменения отслеживаются посредством подписки на зону.
Если это необходимо, как я могу сгенерировать этот токен правильно, учитывая, что у меня есть все виды изменений записи в моем CKModifyRecordsOperation
(для моего использования в API используются пакетные операции). Каков общий рабочий процесс здесь?
спасибо.
'clientChangeTokenData', кажется, равен нулю из блоков завершения CKModifyRecordsOperation. Это что-то, что мы (разработчики) должны сгенерировать и передать в операцию, прежде чем добавлять ее в очередь операций? Не ясно. –
Вы должны проверить ключ с именем recordChangeTag. Он автоматически генерируется CloudKit. –
. Вы сами устанавливаете clientChangeTokenData в операции изменения. Затем вы подтверждаете его соответствие по завершении синхронизации, то есть CKFetchRecordZoneChangesOperation. Почему вы хотели бы это сделать ... Я еще не уверен. – malhal