2011-10-04 70 views
0

我想在我的應用程序中使用自動輕量級遷移。我做了以下步驟:CoreData自動輕量級遷移錯誤

  1. 創建新的模型版本。
  2. 編輯新的型號版本。
  3. 創建persistentStoreCoordinator時,將選項NSMigratePersistentStoresAutomaticallyOption和NSInferMappingModelAutomaticallyOption設置爲YES。
  4. 將當前版本設置爲新版本。

,並得到了一個錯誤:原因=「無法找到源店模式」

我試過產品 - >清潔無濟於事。想法?

編輯:我忘了放在模型的細節。

我有兩個.xcdatamodel文件。第一個有兩個實體,活動和場地。第二個有一個實體,EventDate。我不再使用代碼中的第二個.xcdatamodel,但我沒有將該文件留在項目中。我正試圖添加一個新的實體更新到第一個模型文件。

+0

您是否添加了新模型以用作新模型?您應該爲現有模型添加新版本。 – rckoenes

+0

@rckoenes是的,通過編輯器 - >在Xcode中添加模型版本。 – jcm

回答

0

錯誤「」無法找到源店模式」指的是.xcdatamodel文件最初用於創建現有持久性存儲無法找到。

你應該開始與這兩個模型文件(版本數字是應用程序的版本不是數據模型):

oneEntityModelv1.xcdatamodel 
twoEntityModelv1.xcdatamodel 

...你想要遷移到這個數據模型:

threeEntityModelv2.xcdatamodel 

V2版本的應用程序必須包含所有三個文件才能進行遷移。

+0

有什麼特別的我必須做,以確保這一點?添加新模型時,我沒有刪除/刪除任何xcdatamodel文件。 – jcm

0

問題是我們使用mergedModelFromBundles來實例化我們的模型。顯然,自動輕量級遷移並不能很好地發揮作用。修復方法是:

  1. 刪除未使用的xcdatamodel。
  2. 刪除數據庫文件。
  3. 版本的其餘模型。
相關問題