繁体   English   中英

核心数据和 iCloud

[英]CoreData and iCloud

我正在开发一个核心数据应用程序,并考虑添加 iCloud 支持,但在网上环顾四周后,我经常听说 iCloud+CoreData 不可靠并且经常会崩溃。

这是真的? 我正在阅读的一本关于核心数据主题的书提到 iCloud+CoreData 在 iOS 5 中不可靠,但此后已修复,但我也听说相反的情况,即 iCloud+CoreData 在 iOS 6 中仍然不可靠。如果是这样,存储自定义格式的数据库有帮助吗?

现在iOS 7已经发布了,我们可以聊聊了。 一切似乎都表明在 iOS 7 中 iCloud 核心数据同步已被修复。 我即将将 iCloud Core Data 同步添加到我正在构建的(仅限 iOS 7)应用程序中,所以我还不能从个人经验中发言,但我所听到的一切都表明它现在适合黄金时段。

我强烈建议您观看 WWDC 2013 的“Core Data 和 iCloud 的新功能”会话视频: https : //developer.apple.com/videos/wwdc/2013/? id =207 (需要 Apple 开发者计划会员资格)。 我现在已经看了两遍,他们已经肯定有很多更简单的事情变得简单。

最后,我建议您查看 GitHub 上的UbiquityStoreManager 这是一个几乎可以为您完成 iCloud Core Data 的所有痛苦部分的库。 它已被修改以考虑到 iOS 7 中的重大改进,尽管如果您想利用它们,您的应用程序必须仅适用于 iOS 7(无论您是否使用该库都适用)。

更新:自从发布这个答案后,我现在可以根据个人经验发言,并且可以确认 iOS 7 中的 Core Data iCloud Sync 是坚如磐石的,更重要的是,实施起来非常容易。 我将它添加到我的应用程序中,而没有使用UbiquityStoreManager或任何其他 3rd 方库,这非常简单。 实际上只是几行代码。

编辑:我用我的 iCloud 核心数据堆栈为 iOS 7 创建了一个 GitHub 存储库。希望它有帮助: https : //github.com/mluisbrown/iCloudCoreDataStack

视频链接已更改: https : //developer.apple.com/videos/wwdc/2013/?id=207

编辑:这应该是对最后一个答案的评论,但我没有所需的 50+ 声誉:(

在 macOS 10.15 和 iOS 13 中,Apple 引入了NSPersistentCloudKitContainer ,它是

将 Core Data 堆栈封装在您的应用程序中并将选择的持久存储镜像到 CloudKit 私有数据库的容器。

链接:

Apple 文档:使用 CloudKit 镜像核心数据存储

Apple 示例代码:将本地商店同步到云端

我有一个基于@mluisbrown的iCloudCoreDataStack的Swift版本,带有一些Xcode生成的代码和Apple技术支持,位于https://github.com/hyouuu/iCloudCoreData-Swift

我可能犯了明显的错误 - 请帮助它变得更好!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM