不要使用CkFetchRecordZoneChangesOperation获取删除更改

时间:2018-01-02 10:11:57

标签: ios cloudkit

我用它来从cloudkit数据库中获取所有记录。我传递nil令牌表示我需要所有更改。后来我用适当的令牌获取最新的更改。

但是我第一次得到与删除相关的更改。这需要一些时间......有没有办法表明我是否需要删除更改?或者,我可以以某种方式将这种类型的变更标记为已接收或已读取而不再获取它?

1 个答案:

答案 0 :(得分:1)

  

我第一次收到与删除相关的更改。

我了解您在将零值传递给CKFetchRecordZoneChangesOptions中的服务器更改令牌时提到的情况。

  

有没有一种方法可以指示我是否需要更改删除?还是我可以某种方式将这种更改标记标记为已接收或已读取,而不再获取它?

您将在块中获取已删除记录的ID:“ setRecordWithIDWasDeletedBlock”

  

@属性(非原子,副本,可为空)void(^ recordWithIDWasDeletedBlock)(CKRecordID * recordID,NSString * recordType);

请尝试不要在您的操作实例中设置该block属性。如果未设置阻止,则不会收到已删除记录的信息。因此,不要第一次设置block属性(即,当更改令牌为nil时)。

  

稍后,我会使用适当的令牌获取最新更改。

仅当更改令牌为非零时,您才可以设置上述块!