删除设备上的本地iCloud数据(例如,首次启动/重新安装时)

时间:2013-02-28 14:21:17

标签: iphone ios ipad icloud

如果用户安装了一个使用带有UI(Managed)Document的iCloud的应用程序,那么使用该应用程序,创建保存到iCloud的数据,然后删除手机上的应用程序,iCloud数据将保留在设备上(交易日志等)。如果用户重新安装应用程序,它将尝试使用这些旧文件。

我有以下两个问题:

  • 同时iCloud文档可能已更改,并且在重新安装应用程序后第一次启动时用户没有网络连接时可能会出现问题。
  • 此应用的iCloud文档可能已被用户删除(通过设置或用户库中的Mac OS Finder)。现在,当用户在重新安装应用程序后第一次启动时没有网络时,应用程序可能会认为存在包含数据的普遍容器,即使它已被删除(应用程序可能会崩溃)。

这不是很容易测试,但我已经明确地解决了这两个问题的崩溃和故障。例如。 NSMetadataQuery显示iCloud中不存在的文档的结果,因为它们已被删除(但删除应用时存在)。

这有什么简单的解决方案吗?我想在第一次启动应用程序时删除设备上的本地iCloud数据 - 但是如何做到这一点?

1 个答案:

答案 0 :(得分:0)

无法做到。如果您在本地删除iCloud文档,则最终将其删除。 iCloud API没有独立于iCloud服务管理本地副本的概念,因此如果删除一个 - 即使网络已关闭 - iCloud ubiquity守护程序将在第一时间向服务发送删除命令。

当前API允许的最接近的近似值是:

  • 检查网络是否可以访问
  • 如果无法访问,请不要尝试访问任何iCloud文档(因为正如您所说,信息可能过时)。
  • 如果网络出现,请尝试打开所有现有的iCloud文档。 (在iOS上,iCloud更新仅按需下载,因此您需要创建该需求)。

如果这还不够好(让我们面对它,那还不够好),请向Apple提出一个错误并希望最好。