icloud的本地核心数据存储

时间:2013-10-02 18:15:04

标签: ios core-data icloud

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

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

2 个答案:

答案 0 :(得分:1)

在iOS 7中,Core Data框架负责管理本地存储,直到iCloud存储设置完成并可用。此模式也适用于应用程序处于脱机状态时,并且在应用程序脱机时不会删除任何数据(只需在我的应用程序中进行双重检查)。

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

至于示例代码,今天没有任何代码。但是,在开发者论坛上有iCloud sample code shared by AppleSpaceMan,这是我作为基础使用并且工作得很好。

答案 1 :(得分:0)

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

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

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