使用核心数据在本地迁移iCloud存储

时间:2015-08-13 11:16:08

标签: ios objective-c core-data icloud

我有一个完全构建的应用程序,它使用Core Data来存储用户条目。在这种情况下,一切都运作良好。我去年已经在应用程序中构建了iCloud同步功能,但是最近我在发布更新后发现了一个问题(没有更改iCloud)。更新后,用户的数据已从应用程序中消失(尽管它仍然存在于iCloud中)。

失踪的原因是当我创建应用程序时,我使用“CloudLogs”作为NSPersistentStoreUbiquitousContentURLKey,但在每次后续启动(包括升级)时,我使用了“{{1 “作为iCloud,用于创建商店时的选项。这当然是我的错误,但直到最近,这实际上在我的应用程序中有效。再次,我错误地使用不同的商店。

所以我现在的任务是在本地迁移“NSPersistentStoreUbiquitousContentURLKey”和“CloudLogs”目录,备份它然后迁移到新的“iCloud”商店,或者其他任何商店会被叫到。

创建应用程序时,我使用了iCloudPermanent。当我转到iCloud时,我没有将其更改为NSURL *localURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@“MyApp.sqlite”];;我只是将“MyAppiCloud.sqlite”作为CloudLogs和“NSPersistentStoreUbiquitousContentURLKey”作为APPCloud迁移。

我的问题是:为了进行迁移,我想我会备份iCloud存储,删除它,然后在没有NSPersistentStoreUbiquitousContentNameKey的情况下添加它。我是否需要创建新的NSPersistentStoreUbiquitousContentURLKey并使用它?即没有iCloud的本地将使用MyAppiCloud.sqlite,但iCloud存储将使用MyApp.sqlite作为URL。

我没有看到这样做的重点。任何人都可以确认使用不同MyAppiCloud.sqlite的必要目的是什么;一个用于本地,一个用于iCloud?我不能只使用相同的,但使用不同的URLs选项吗?

0 个答案:

没有答案