【问题标题】:Purge/Clean all user iCloud records for CloudKit container清除/清除 CloudKit 容器的所有用户 iCloud 记录
【发布时间】:2018-07-08 11:10:53
【问题描述】:

我们创建了一个 iOS 应用程序,它保存到 CoreData,然后同步到 CloudKit。在测试中,我们还没有找到从应用程序 iCloud 容器中清除数据的方法(用于用户私人数据)。只能从我们知道的那里删除。如果我们遇到同步问题并且某些东西“卡在 iCloud 中”,我们不确定如何清除以重新启动。关于如何彻底清理 iCloud 的任何想法。
更新信息:CloudKit 私有数据库。没有区域。清除应用程序的所有数据以获得全新的开始。应用程序的用户将拥有此控制权。 预期结果:从应用程序中,用户可以快速删除他们保存的所有用户数据。 我可能没有问正确的问题或遗漏了什么 - 感谢任何指导。

【问题讨论】:

  • 您没有提供任何有用的详细信息。您如何使用 CloudKit?你在使用公共数据库吗?私有数据库?共享数据库?除了默认区域之外,您还使用任何区域吗?您希望如何删除?您是否希望单个用户能够从自己的数据库中删除自己的数据?您希望能够快速删除所有用户数据吗? Edit您的问题(不要在评论中回复),详细说明您拥有哪些数据以及需要删除哪些数据。
  • 感谢您提供更好、更有用信息的指导。我已经编辑了以上信息。

标签: swift cloudkit


【解决方案1】:

如果您使用“无区域”的私有数据库,那么您实际上是在使用默认区域。为了从默认区域中删除所有数据,您需要查询每种记录类型的每个记录 id 并删除每个结果。这是非常低效的。

我建议您不要在用户的私有数据库中使用默认区域,而是在用户的私有数据库中创建并使用自定义区域。然后,如果您需要删除用户的所有数据,只需删除该区域。一键调用,简单高效。

【讨论】:

  • 谢谢 RMaddy,这很有用,帮助我们找到了删除区域的答案 - 从当前数据库中以低优先级异步删除一个记录区域(及其内容)。 developer.apple.com/documentation/cloudkit/ckdatabase/…
  • 我正在按照您的建议检查this,但我既没有收到任何错误消息,也没有收到任何成功消息,而且当获取数据时,所有数据都来自相同的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
相关资源
最近更新 更多