[英]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.