2017-01-01 62 views
1

如果我的目标是创建用户可以在意外删除我的应用程序或错误导致数据丢失(无需跨设备共享数据)时恢复的云备份,那么每天备份用户CoreData的最简单方法是什么? (注:偶尔完整备份iPhone是不够的)iCloud Backup for CoreData - On Demand?

当我读到CloudKit我看到的东西,如:

你可能想知道为什么你应该选择CloudKit在核心数据,其他商业巴斯(后端即服务)产品,或者甚至滚动您自己的服务器...

但是,这是一个问题,因为我想继续使用CoreData!我不希望用户依靠云来获取数据。我不想同步问题,在线/离线问题等。

我还想避免让用户登录或创建一个帐户。根据Ray Wenderlich的说法:

由于CloudKit使用在设备设置(或通过设置应用程序设置后输入)时输入的iCloud凭据,因此无需构建复杂的登录屏幕。

我看到一些应用程序使用Facebook登录,但我甚至想避免这种情况!那么我可以使用CloudKit来避免登录屏幕,但是仍然使用CoreData?

虽然代码的答案很好,但对于这种类型的功能所使用的API /设计模式只是一个普遍的答案就足够了。

回答

0

是的,您可以在CoreData的同一时间使用CloudKit来做到这一点,并避免许多其他云选项的登录和成本开销。

但是,由于这两个数据模型是不相关的,如果您的数据很复杂,每当用户选择备份或恢复时,都会有相当数量的代码需要进行转换。

你确定依靠正常的iOS备份功能还不够吗?

+0

对不起,答复缓慢,谢谢你的回答。我的用户似乎想要备份选项。我的数据很简单,字符串,整数和日期。没有关系数据库设置。是否足够简单,以干净的方式做到这一点,或者我仍然会发现它最终会变得混乱? –

+0

是的,我认为这可以合理地与CloudKit一起适应,而不需要付出太多努力。我认为你的直觉是保持简单是正确的,因为全多设备数据同步有很多边缘情况需要捕捉 - 但要确保你的应用程序有适当的检查,并且你的用户知道这个限制 - 例如如果他们从另一个设备访问备份会发生什么? –