CloudKit - 当用户在离线时添加、修改或删除对象时该怎么办?

Posted

技术标签:

【中文标题】CloudKit - 当用户在离线时添加、修改或删除对象时该怎么办?【英文标题】:CloudKit - What to do when a user adds, modifies or deletes an object while offline? 【发布时间】:2016-10-27 19:04:03 【问题描述】:

我遇到的问题是当用户执行删除操作时(例如,在离线时)该怎么办?我正在考虑使用 addedQueue、modifiedQueue 和 deletedQueue,并使用NSCodingNSKeyedArchiver 将它们持久化。也许我会使用 Set 或 Dictionary。然后我会在后台或每个应用程序启动时迭代它们,并在成功时从它们中删除。这听起来合理吗?有没有人可以分享这个问题的经验?我已经做了很多寻找答案的工作,包括观看所有 CloudKit WWDC 演讲。

我正在使用 Core Data 在本地存储我的所有数据,因此我考虑添加一个属性以进行添加或修改,但删除时效果不佳。

【问题讨论】:

【参考方案1】:

对于排队更改的单独数据库表(即核心数据实体)怎么样?

您可以为每个操作(如您所描述的)单独设置一个属性,或者在排队的更改实体对象上设置一个属性(例如“操作”)。然后您可以定期尝试,您可以在尝试同步更改之前检查连接性,是的,正如您所说,迭代它们并在成功时清除它们。

【讨论】:

以上是关于CloudKit - 当用户在离线时添加、修改或删除对象时该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

离线时发布(React-Native)

即使在离线时如何缓存网页以在我的 android 应用程序中使用

MoPub“onInterstitialFailed”adListener 在离线时不起作用

如何在离线时安装 npm 包?

Chrome 在离线时禁用按钮和输入元素

仅在离线时使用 ServiceWorker 缓存