2010-07-13 34 views
5

我有兩個模型在我的項目中,我想允許其中的一個版本。以下是我所做的:多種型號iPhone核心數據遷移

  • 選擇modelOne.xcdatamodel,然後選擇Design> Data Model> Add Model Version。
  • 點擊命令+我然後添加版本到modelOne.xcdatamodel裏面modelOne.xcdatamodeld
  • 修改modelOne.xcdatamodel,只是增加了一些屬性。
  • 在委託我添加的選項字典的NSPersistentStoreCoordinator,我通過合併這兩個模型,如獲得NSManagedObjectModel:

    NSString *path1 = [[NSBundle mainBundle] pathForResource:@"modelOne" ofType:@"momd"]; 
    NSURL *momURL1 = [NSURL fileURLWithPath:path1]; 
    NSManagedObjectModel *modelOne = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL1]; NSString *path2 = [[NSBundle mainBundle] pathForResource:@"modelTwo" ofType:@"mom"]; 
    
    NSURL *momURL2 = [NSURL fileURLWithPath:path2]; 
    NSManagedObjectModel *modelTwo = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL2];  
    
    
    NSManagedObjectModel *managedObjectModel = [NSManagedObjectModel modelByMergingModels:[NSArray arrayWithObjects:modelOne, modelTwo, nil]]; 
    
  • 最近我做了一個乾淨和建設,我得到了錯誤關於「燦'找到源商店的模型'。

任何想法如何解決這個問題? (注意:如果我只是使用mergedModelFromBundles,我得到了另一個錯誤'不能合併模型與兩個不同的實體名爲Entity1'

+1

我有相同的問題 - 你解決了這個問題嗎? – Jeff 2014-04-07 06:39:26

回答

-2

我有一個類似的問題。原來,.mom舊模型文件仍然在顯然,當你清理一個項目時,它並沒有在模擬器上清除應用程序包,而是在模擬器上手動刪除應用程序,然後在再次構建之前進行清理,以解決問題

+4

手動刪除應用程序使得它不必運行遷移,這就是爲什麼你在這種情況下看不到上述錯誤。 – Mark 2012-05-29 21:17:33