我剛剛開始研究使用UIManagedDocument進行持久化的應用程序。據我所知,使用UIManagedDocument的唯一原因是利用它自動設置核心數據堆棧。核心數據從UIManagedDocument遷移到正常堆棧
現在,我需要更改數據模型以實現一些新功能。對數據模型的更改將變得非常激烈,我正在考慮從UIManagedDocument轉換到正常的核心數據堆棧。我一直在閱讀很多關於核心數據遷移和UIManagedDocument的內容,但是從UIManagedDocument轉到一個普通的CoreData堆棧,看起來我需要編寫一個遷移數據的類。我只是想知道最好/最安全的方法是什麼。
但是遷移只能幫助遷移到新模型。我仍然需要將數據從UIManagedDocument的堆棧中移出並存入我自己的數據庫中,無論如何,這需要我自己的自定義代碼。那是對的嗎?這就是爲什麼我想知道使用提供的遷移工具是否有任何好處。 – Shinigami
只要您知道其URL是什麼,就應該能夠直接訪問UIManagedDocuments數據庫。通常它位於UIManagedDocument包的子文件夾中,但如果它使用iCloud,它會更復雜一點。它不清楚爲什麼你不想使用UIManagedDocument,它不會讓你的數據庫遷移變得更困難(或更容易)。要將數據庫文件遷移到其他位置,只需使用NSPersistentStoreCoordinators migrationPersistentStore ... –
順便說一句,以上只會幫助您製作現有數據存儲的副本。要將模型轉換爲新模型,您可能需要創建一個新商店,然後運行自定義代碼以從舊商店讀取數據並將其複製到新商店中。 –