我对 iOS7 中带有核心数据存储的 icloud 存储有疑问。在苹果 WWDC 大会上,提到可以在沙箱中创建核心数据存储,当应用开始接收来自 icloud 的响应时,核心数据存储中的更改将被合并到 icloud 存储中。
现在,(我可能错了),但会议进一步提到,一旦应用程序切换到 icloud 商店,本地核心数据存储将被删除。所以,我的问题是本地核心数据存储能否与 iOS7 中的 icloud 存储共存(以便用户能够离线处理数据)?是否有任何示例代码?
在 iOS 7 中,Core Data 框架负责管理本地存储,直到 iCloud 存储设置并可用。此模式也适用于应用程序离线并且在应用程序离线时不会删除任何数据(只需仔细检查我正在开发的应用程序)。
在另一种情况下,iCloud 存储将被删除。这是在 iCloud 用户帐户更改的情况下,在这种情况下,相应的 iCloud 存储文件将被删除。在这种情况下,有一个新的 APINSPersistentStoreCoordinatorStoresWillChangeNotification
允许您在存储不可用之前存储未保存的数据。如果用户稍后使用同一帐户登录,数据将从 iCloud 恢复(查看 WWDC 2013 会话 207 视频 15' 了解更多信息)。
至于示例代码,目前还没有。不过,AppleSpaceMan在开发者论坛上共享了 iCloud 示例代码,这是我用作基础并且运行良好的代码。
只要您有 iCloud 帐户并登录到该帐户,您就可以使用 iCloud 商店离线工作(无网络连接)。我刚刚发布了一个包含以下功能的示例应用程序: