【发布时间】:2013-11-10 15:02:44
【问题描述】:
我正在使用 CoreData 的库类型应用程序。 此应用程序仅适用于 iPhone,我想将 iCloud 用作备份,以确保如果用户更换设备或删除并重新安装应用程序,他们可以获得原始数据。
使用新的 CoreData-iCloud 设置我发现配置非常简单。我刚刚在创建持久存储时添加了NSPersistentStoreUbiquitousContentNameKey,并且我从 iCloud 收听了三个基本通知。
现在我的问题是,当我删除我的应用程序并重新安装它时,在第一次启动重新安装的应用程序时,来自 iCloud 的数据需要超过 2/3 分钟才能返回到设备。
这不是用户所期望的......他们开始使用该应用程序并在某个时候找到了他们的旧数据。从用户的角度来看,这非常奇怪。是否有正确的方法来重新加载以前存储的数据,或者我必须让 iCloud 决定何时重新加载它们?在这种情况下,您如何管理这种情况,让用户知道这个随机更新时间?
【问题讨论】:
-
如果您想要的只是备份,那么只需将存储放在 /Documents 中,它将使用正常备份进行备份。使用 iCloud 会导致事务日志被放入 iCloud,并且在重新安装应用程序并假设 iCloud 可用后导入这些日志。
-
要以这种方式执行备份,用户必须执行设备同步。我认为使用 iCloud 可能是一个更加用户友好的过程。
-
如果用户启用了备份到 iCloud 而不是 iTunes,那么它应该是自动的,无需插入和同步。但备份到 iCloud 与 Core Data/iCloud 集成不同,后者旨在在设备之间同步数据。