设备A已断开连接(以前已经连接到iCloud数据库并成功同步了更改)。该设备现在离线,并且尚未提交更改(因为该应用程序设计为可以离线使用)。
设备B删除该区域,然后重新创建(用户想要重置它,或者更具体地说,我已经使用仪表板对其进行了测试,删除了该区域并重新创建)。
设备A重新联机后,它将开始上传记录(并且在尝试修改某些内容但会增加工作量时最终会失败)。问题是它可能在成功重置之前成功上传了记录。
确定区域是否已重置的正确方法是什么?仅查询该区域是否存在并不一定告诉我该区域已被重置。
我相信当我从订阅中获取更新时,会收到一个changeTokenExpired错误,但是我虽然苹果曾说过我们应该先上传更改,然后再下载(如果我错了,请纠正我)。
答案 0 :(得分:0)
您可以设置CKDatabaseSubscription
或CKRecordZoneSubscription
并将其保存到数据库。
删除记录区域后,将调用您的应用程序委托的application(didReceiveRemoteNotification:)
。
使用在那里收到的userInfo
字典,使用CKDatabaseSubscription
构造函数创建CKRecordZoneSubscription
或init(fromRemoteNotificationDictionary:)
。
希望有帮助!