我正在开发一个核心数据应用程序,并且正在考虑添加 iCloud 支持,但是在网上浏览后,我经常听说 iCloud+CoreData 不可靠,并且经常会崩溃。
这是真的?我正在阅读的一本关于核心数据主题的书提到 iCloud+CoreData 在 iOS 5 中不可靠,但后来已经修复,但我也听到相反的说法,iCloud+CoreData 在 iOS 6 中仍然不可靠。如果是这样,存储自定义格式的数据库有帮助吗?
我正在开发一个核心数据应用程序,并且正在考虑添加 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 Developer Program 会员资格)。我现在已经看了两遍,他们确实让事情变得更加简单。
最后,我推荐看看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
@mluisbrown 提到的视频/链接(https://developer.apple.com/videos/wwdc/2013/?id=207)似乎不再可用。
截至 2021 年有更新版本: https ://developer.apple.com/videos/play/wwdc2021/10015/
在 macOS 10.15 和 iOS 13 中,Apple 引入了NSPersistentCloudKitContainer,它是
一个容器,它将核心数据堆栈封装在您的应用程序中,并将选择的持久存储镜像到 CloudKit 私有数据库。
链接: