我正在开发一个启用了CloudKit
的应用和一个使用CoreData
与iCloud同步的本地CloudKit
缓存。我正在使用CKFetchRecordChangesOperation
类来获取新的,已更改的和已删除的记录。返回的CKServerChangeToken
用于每次连续提取。 CKModifyRecordsOperation
用于添加和删除记录。
如果我使用CKModifyRecordsOperation
添加记录,操作将返回新的CKRecord
。如果我然后使用CKFetchRecordChangesOperation
执行新的提取,则再次获取新添加的记录,这是不必要的。有谁知道如何防止这种行为?
我知道clientChangeTokenData
上有NSData
类型的CKModifyRecordsOperation
属性,但clientChangeToken
返回的CKFetchRecordChangesOperation
始终为nil
出于某种原因。
答案 0 :(得分:1)
除了previousServerChangeToken之外,没有其他机制可以控制CKFetchRecordChangesOperation应返回的内容。它只会返回更改。这将包括您自己做出的更改。
如果这是一个问题,那么您可以尝试使用订阅。这些将默认排除您自己所做的更改。