Я пытаюсь реализовать синхронизацию с CloudKit. Чтобы получить изменения с сервера, я использую CKFetchRecordZoneChangesOperation. Однако recordZoneChangeTokensUpdatedBlock не вызывается вообще. Вот код:CloudKit. Блок изменения токена CKFetchRecordZoneChangesOperation не называется
let options = CKFetchRecordZoneChangesOptions()
options.previousServerChangeToken = changesToken
let operation = CKFetchRecordZoneChangesOperation(recordZoneIDs: [paletteZoneId], optionsByRecordZoneID: [paletteZoneId:options])
operation.fetchAllChanges = true
operation.recordChangedBlock = {(record) in
...
}
operation.recordWithIDWasDeletedBlock = { (recordId,str) in
...
}
operation.recordZoneChangeTokensUpdatedBlock = { recordZoneId, token, data in
print("new token")
self.changesToken = token
}
operation.fetchRecordZoneChangesCompletionBlock = { error in
...
}
privateDB.add(operation)
Так как результат операции не работает должным образом. Другие блоки называются ожидаемыми.
В документации говорится, что маркерный блок должен быть вызван для каждой зоны, но он вообще не называется.
Я бы очень признателен за любую помощь.
Большое спасибо.
Спасибо @ChrisDeft: Это было полезно, хотя я бы и ожидал, это была другая функция (recordZoneChangeTokensUpdatedBlock INSTEAD OF recordZoneFetchCompletionBlock) – LukeSideWalker