我刚刚开始研究使用UIManagedDocument进行持久化的应用程序。据我所知,使用UIManagedDocument的唯一原因是利用它自动设置核心数据堆栈。核心数据从UIManagedDocument迁移到正常堆栈
现在,我需要更改数据模型以实现一些新功能。对数据模型的更改将变得非常激烈,我正在考虑从UIManagedDocument转换到正常的核心数据堆栈。我一直在阅读很多关于核心数据迁移和UIManagedDocument的内容,但是从UIManagedDocument转到一个普通的CoreData堆栈,看起来我需要编写一个迁移数据的类。我只是想知道最好/最安全的方法是什么。
但是迁移只能帮助迁移到新模型。我仍然需要将数据从UIManagedDocument的堆栈中移出并存入我自己的数据库中,无论如何,这需要我自己的自定义代码。那是对的吗?这就是为什么我想知道使用提供的迁移工具是否有任何好处。 – Shinigami
只要您知道其URL是什么,就应该能够直接访问UIManagedDocuments数据库。通常它位于UIManagedDocument包的子文件夹中,但如果它使用iCloud,它会更复杂一点。它不清楚为什么你不想使用UIManagedDocument,它不会让你的数据库迁移变得更困难(或更容易)。要将数据库文件迁移到其他位置,只需使用NSPersistentStoreCoordinators migrationPersistentStore ... –
顺便说一句,以上只会帮助您制作现有数据存储的副本。要将模型转换为新模型,您可能需要创建一个新商店,然后运行自定义代码以从旧商店读取数据并将其复制到新商店中。 –