小编kro*_*ger的帖子

如何将初始数据播种到Core Data + iCloud?

我正在开发一个使用Core Data和iCloud的新应用.我正在关注iCloudCoreDataStack演示和iCloud设计指南.到目前为止,设备之间的同步运行良好,但我还没有弄清楚如何在用户的第一台设备上使用应用程序时播种少量数据,如果应用程序在第二台设备上使用,则跳过播种(因为它应该从iCloud下载).

这应该很简单,只要询问iCloud Container是否有任何数据.下载数据(如果存在)或创建新数据(如果不存在).但我找不到办法做到这一点:-(

我可以想到三种方法来解决这个问题:

  1. 使用migratePersistentStore:toURL:options:withType:error:我的数据量非常少,所以对于这种情况,这感觉就像是矫枉过正

  2. 在NSUbiquitousKeyValueStore上存储一个值以标记是否已经进行了初始同步我尝试使用NSUbiquitousKeyValueStore,但有时从UbiquitousKeyValueStore获取值需要很长时间,因此即使在不需要时也会创建种子数据,从而导致重复.

  3. 使用sentinel文件与#2具有相同的效果(我不知道如何实现这个)

该应用程序仅适用于iOS 7和新版本,因此无需迁移旧用户数据.

我发现的每个相关教程和书籍似乎都使用iOS7之前的超级复杂的处理方式(例如使用后备存储),这在iOS 7中是不必要的.

要么我缺少某些东西(通常是这种情况),要么这比它应该更复杂.我感谢任何建议和指示.

iphone core-data ios icloud

4
推荐指数
1
解决办法
1888
查看次数

标签 统计

core-data ×1

icloud ×1

ios ×1

iphone ×1