2013-10-02 142 views
0

我有一个关于icloud存储在iOS7核心数据存储的问题。在苹果WWDC大会上,有人提到可以在沙盒中创建核心数据存储,当应用开始接收icloud的响应时,核心数据存储中的更改将合并到icloud存储中。本地核心数据存储与icloud

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

回答

1

在iOS 7中,核心数据框架负责管理本地存储,直到iCloud存储安装并可用。该模式也适用于应用程序处于脱机状态,并且在应用程序脱机时不会删除任何数据(只需在开发中对应用程序进行双重检查)。

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

至于示例代码,目前还没有。在开发者论坛上有iCloud sample code shared by AppleSpaceMan,这是我作为一个基地,并很好地工作。

0

只要您有iCloud帐户并登录到该帐户,就可以与iCloud存储脱机工作(无网络连接)。我刚才已经发布,其中包括以下功能的示例应用程序:

  • 使用本地的iCloud核心数据存储
  • 包括一个设置捆绑(注这会在Settings App中创建一个设置页面),其中包括:
    • 使用的iCloud偏好设置(ON或OFF)
    • 制作备份偏好设置(ON或OFF)
    • 显示应用程序版本号
  • 提示用户关于存储选项使用iCloud优选的是改变为ON
  • 迁移核心数据存储和从iCloud中根据用户的偏好设置和响应于提示
  • 检测的iCloud商店的缺失从另一设备和通过清理当迁移到iCloud本地存储,并提示用户是否在本地存储如果IC合并或丢弃数据创建一个新的空的iCloud储存
  • 检查现有的iCloud文件响亮的文件是否存在,如果制作备份首选项设置为ON
  • 使备份核心数据存储的。备份文件名为persistentStore_Backup_yyyy_MM_dd_HH_mm_ss。要使用它:
    • 设置备份首开和下一次应用程序被激活,它将使当前核心数据存储的备份和恢复的优先选择OFF
    • 文件可以从iTunes复制到PC或Mac
    • 恢复只需设置应用程序来使用本地文件(使用iCloud的偏好OFF)并更换persistentStore文件,所需备份文件(注意该文件必须命名为 persistentStore)。
    • 来,然后通过iCloud的共享恢复的文件再次打开使用iCloud的偏好并运行应用程序

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