我有一个完全构建的应用程序,它使用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
选项吗?