CloudKit区域删除和娱乐

时间:2018-10-14 05:25:24

标签: ios cloudkit

设备A已断开连接(以前已经连接到iCloud数据库并成功同步了更改)。该设备现在离线,并且尚未提交更改(因为该应用程序设计为可以离线使用)。

设备B删除该区域,然后重新创建(用户想要重置它,或者更具体地说,我已经使用仪表板对其进行了测试,删除了该区域并重新创建)。

设备A重新联机后,它将开始上传记录(并且在尝试修改某些内容但会增加工作量时最终会失败)。问题是它可能在成功重置之前成功上传了记录。

确定区域是否已重置的正确方法是什么?仅查询该区域是否存在并不一定告诉我该区域已被重置。

我相信当我从订阅中获取更新时,会收到一个changeTokenExpired错误,但是我虽然苹果曾说过我们应该先上传更改,然后再下载(如果我错了,请纠正我)。

1 个答案:

答案 0 :(得分:0)

您可以设置CKDatabaseSubscriptionCKRecordZoneSubscription并将其保存到数据库。

删除记录区域后,将调用您的应用程序委托的application(didReceiveRemoteNotification:)

使用在那里收到的userInfo字典,使用CKDatabaseSubscription构造函数创建CKRecordZoneSubscriptioninit(fromRemoteNotificationDictionary:)

希望有帮助!