2016-12-11 42 views
1

我的問題相當簡單,雖然我發現了任何具體回答它的事情。更新應用程序時重新使用核心數據模型 - 從頭開始​​

我有一個obj-c應用程序,我經常更新。我想用相同的捆綁ID創建一個新的swift應用程序來替換舊的應用程序作爲更新。我喜歡我舊應用程序中的8個核心數據模型版本,我很想遷移到新的從零開始的應用程序,所以我的用戶不會丟失他們的數據。這甚至有可能嗎?

感謝ü

回答

3

如果您使用的是完全相同的包ID(這是關鍵),然後從iOS版的角度來看,它被認爲是完全一樣的應用程序。考慮你的用戶在他們的設備上安裝了1.x版本的應用程序,並且使用新的Swift項目來發布2.x版本。你的用戶,也就是iOS,將能夠告訴你這是一個用Swift編寫的全新應用程序。

這裏的疑惑是除非您使用完全相同的型號名稱,否則CoreData將無法用現有數據進行初始化,您將被迫爲此編寫自定義遷移。

我給你的建議是複製舊項目中的xcdatamodel文件,並更改一旦複製到新項目中時生成的代碼的語言。

enter image description here

然後重新生成實體斯威夫特並繼續像什麼事也沒發生過工作。

+0

我創建了一個新項目,複製了模型文件和捆綁ID,確保模型名稱相同,切換到每個實體和重新生成的子類的swift,但是當我嘗試請求以前的數據時,沒有數據: - /你有什麼想法我可以在哪裏犯錯誤? – kalafun

+0

現在我發現新項目生成了一個NSPersistentContainer來處理寫入模型,並且sqlite文件可能在其他地方,這就是爲什麼我無法獲取數據 – kalafun

相關問題