对于CKFetchNotificationChangesOperation,previousServerChangeToken是特定于用户还是特定于数据库?

时间:2015-12-16 01:19:14

标签: ios cloudkit cknotification

对于公共 CloudKit数据库,是否有人知道在初始化CKFetchNotificationChangesOperation时用于previousServerChangeToken的数据令牌是:

1)特定于用户:数据令牌只能由一个Apple ID

使用

2)特定于数据库:不同的Apple ID可以使用相同的令牌在CKNotifications数据库中指定相同的状态

我想知道因为我有一些预加载的本地数据可能需要在首次启动时更新,而且我不确定是否应该使用CKFetchNotificationChangesOperation(初始令牌保存在主包中)或者只是获取公共数据库中的所有记录并检查本地数据。

2 个答案:

答案 0 :(得分:1)

通知更改令牌是每用户值,它们不能用于假设公共数据库中记录的状态。

听起来您正在尝试使用公共数据库来存储更新应用程序包中的默认文件的文件。

执行此操作的一种方法是在此类型的所有记录上存储version属性。当应用程序检查是否需要任何更新时,它可以为版本高于本地保存版本的所有记录运行CKQuery。然后,您的应用程序可以下载所有这些记录并使用它们而不是存储在其捆绑包中的数据。

答案 1 :(得分:0)

您需要的是CKFetchRecordChangesOperation,但这仅适用于用户私有云包数据库中的非默认区域。 此操作将为您提供记录区域,记录已删除和更新(仅包含已更改的属性)的所有更改。