1
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 대신 recordZoneFetchCompletionBlock)이 유용했습니다. – LukeSideWalker