我有一些默认内容的数据库。如何使用iCloud同步不同设备上数据库的更改?
我知道如何在CoreData首先为空的情况下同步设备,并且可以从外部sqlite文件迁移到CoreData。
最佳答案
如果您现有核心数据存储,并且想要添加iCloud支持,则需要将所有现有数据转移到新的数据存储中并保存结果。这是必要的,因为iCloud仅在您保存更改时才生成事务-因此您需要有效地保存更改以使所有内容快速启动同步过程。
在大多数情况下,您可以使用NSPersistentStoreCoordinator
的migratePersistentStore:toURL:options:withType:error:
一步完成此操作。传递与调用addPersistentStoreWithType:configuration:URL:options:error:
时将使用的相同的iCloud选项。仅当从非iCloud数据存储转移到使用iCloud的存储时,才使用此替代方法。
另外,请注意将iCloud与Core Data结合使用。它没有以可靠性赢得声誉。密切注意Apple的文档和示例项目,即使这样,也要做好准备以使它有时无法工作。