我正在尝试实现与 CloudKit 的同步。 要从服务器获取更改,我正在使用 CKFetchRecordZoneChangesOperation。 然而,根本没有调用 recordZoneChangeTokensUpdatedBlock。 这是代码:
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)
因此结果操作无法正常工作。其他 block 按预期调用。
文档说应该为每个区域调用 token block ,但它根本没有被调用。
如果有任何帮助,我将不胜感激。
非常感谢。
最佳答案
服务器更改 token 在不同的 block 中返回 - 您需要使用 recordZoneFetchCompletionBlock。
关于ios - 云套件。未调用 CKFetchRecordZoneChangesOperation 的 token 更改 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684749/