我应该如何为已有数据的Core Data App添加iCloud支持?

时间:2013-11-20 23:14:23

标签: objective-c ios7 icloud

我正在尝试为我的CoreData App添加iCloud(仅限iOS7)支持,该支持已经被用户使用了一段时间。因此,我需要确保用户输入的所有数据都不会损坏或丢失。

当我用iCloud支持新应用程序替换旧应用程序时,它会回退到本地空白商店,没有显示数据。我应该等一分钟,以便应用程序切换到iCloud存储,我的数据就准备好了。这真令人讨厌,因为用户会认为他们的数据已经以某种方式丢失了。

那么我应该怎么做以防止这种情况发生?或者我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

不,这听起来是正确的,尽管即使是那个时间(一分钟)也不是你可以依赖的东西。您可以在商店切换到iCloud商店之前显示警报,但即使这样也不能保证所有数据都已加载。每当用户更改iCloud设置时,这可能会发生,因此用户教育可能是最佳解决方案(!)。

编辑:

我刚刚发布了 sample library style app ,并支持以下内容:

  • 使用本地 iCloud 核心数据存储
  • 包含设置包(请注意,这会在“设置”应用中创建设置页面),其中包括:
    • 使用iCloud 首选项设置(开或关)
    • 进行备份首选项设置(开启或关闭)
    • 显示应用程序版本和内部版本号
  • 当Use iCloud首选项更改为ON时,提示用户选择存储选项
  • 根据用户首选项设置和对提示的响应,将核心数据存储迁移到iCloud或从iCloud迁移
  • 检测从其他设备删除iCloud商店并通过创建新的空iCloud商店进行清理
  • 在迁移本地存储到iCloud时检查现有的iCloud文件,如果存在iCloud文件,则提示用户是否合并或丢弃本地存储中的数据
  • 如果将“备份”首选项设置为“开”,则“备份核心数据存储”。备份文件名为persistentStore_Backup_yyyy_MM_dd_HH_mm_ss。使用它:
    • 将备份首选项设置为ON,下次启动应用程序时,它将备份当前Core Data存储并将首选项重置为OFF
    • 文件可以从iTunes复制到PC或Mac
    • 恢复简单设置app以使用本地文件(使用iCloud首选项OFF)并将persistentStore文件替换为所需的备份文件(注意该文件必须称为persistentStore)。