0

我对 iOS7 中带有核心数据存储的 icloud 存储有疑问。在苹果 WWDC 大会上,提到可以在沙箱中创建核心数据存储,当应用开始接收来自 icloud 的响应时,核心数据存储中的更改将被合并到 icloud 存储中。

现在,(我可能错了),但会议进一步提到,一旦应用程序切换到 icloud 商店,本地核心数据存储将被删除。所以,我的问题是本地核心数据存储能否与 iOS7 中的 icloud 存储共存(以便用户能够离线处理数据)?是否有任何示例代码?

4

2 回答 2

1

在 iOS 7 中,Core Data 框架负责管理本地存储,直到 iCloud 存储设置并可用。此模式也适用于应用程序离线并且在应用程序离线时不会删除任何数据(只需仔细检查我正在开发的应用程序)。

在另一种情况下,iCloud 存储将被删除。这是在 iCloud 用户帐户更改的情况下,在这种情况下,相应的 iCloud 存储文件将被删除。在这种情况下,有一个新的 APINSPersistentStoreCoordinatorStoresWillChangeNotification允许您在存储不可用之前存储未保存的数据。如果用户稍后使用同一帐户登录,数据将从 iCloud 恢复(查看 WWDC 2013 会话 207 视频 15' 了解更多信息)。

至于示例代码,目前还没有。不过,AppleSpaceMan在开发者论坛上共享了 iCloud 示例代码,这是我用作基础并且运行良好的代码。

于 2013-10-04T03:36:36.620 回答
0

只要您有 iCloud 帐户并登录到该帐户,您就可以使用 iCloud 商店离线工作(无网络连接)。我刚刚发布了一个包含以下功能的示例应用程序:

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

http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/

于 2014-01-14T05:49:32.893 回答