繁体   English   中英

如何在发布更新中启用iCloud并迁移Core Data?

[英]How do I enable iCloud and migrate Core Data on a release update?

我有一个发布的iPhone App V1.0,它使用Core Data但没有iCloud。 现在,我想发布具有iCloud支持的V2.0。

我使用https://github.com/mluisbrown/iCloudCoreDataStack/blob/master/iCloudCoreDataStack/PersistentStack.m作为模板,似乎一切正常。

因为以前的版本没有iCloud,而新的版本具有iCloud,所以我想在用户第一次打开新版本时将本地副本迁移到iCloud。

我怎么做? 我可以简单地将整个sqlite文件从本地复制到iCloud吗? 模式在1.0和2.0之间相同。

我打算问用户是否要使用本地Vs。 iCloud(按照准则),但是如果他们说是,我只想以某种方式进行批量复制。

谢谢

您无法批量复制,必须使用带有iCloud选项的正确API [NSPersistentStoreCoordinator migratePersistentStore:...][NSPersistentStoreCoordinator removeUbiquitousContentAndPersistentStoreAtURL:...]才能将商店迁移到iCloud。 我试图记录如何执行此操作(但示例使用UIManagedDocument,尽管用于从iCloud迁移的核心数据API保持不变)。

您不仅需要检查用户首选项,还必须检查他们是否已登录到iCloud。 另外,您必须迁移到iCloud,然后如果用户更改首选项,则必须能够迁移回本地。 因此,您必须在应用程序启用时检查用户是否更改了设置。 这并不是一件容易的事,但是一旦弄清所需的逻辑,这并不困难。

请参阅下面的链接,以获取更详细的说明,示例代码和视频,以显示应用程序的工作以及本地和iCloud容器中文件的创建/删除:

http://ossh.com.au/design-and-technology/software-development/uimanageddocument-icloud-integration/

请记住,您必须从示例中删除特定于UIManagedDocument代码。

我刚刚发布了一个示例iOS库样式的Core Data应用程序,其中包括iCloud集成。 该应用程序包括一个设置捆绑包,供用户切换“使用iCloud”首选项设置,并将根据用户设置将商店与iCloud迁移。

从下面的链接下载-抱歉文档-在某个时候可以解决该问题,但其工作方式与UIManagedDocument示例大致相同。

http://ossh.com.au/design-and-technology/software-development/

暂无
暂无

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

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