2010-07-13 18 views
5

Projemde iki modelim var, sürümlerin bunlardan birine izin vermek istiyorum. Yaptığım şey:Çoklu Modellerle iPhone Temel Veri Akışı

  • ModelOne.xcdatamodel'i seçtikten sonra Tasarım> Veri Modeli> Model Sürümünü Ekle'yi seçin.
  • Tıklatılmış komut + i sonra modelOne.xcdatamodel modeline bir model ekleyinizOne.xcdatamodeld
  • Modifiye modelOne.xcdatamodel, bazı öznitelik ekledim. Temiz bir yaptım ve inşa
    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]]; 
    
  • Son I Can' hakkında hata var

    : delegesi
  • Ben seçenekleri NSPersistentStoreCoordinator için sözlüğe ve ben gibi iki model birleştirerek NSManagedObjectModel olsun eklendi kaynak deposu için model bulmayın.

Bunu nasıl düzeltebilirim? (Not: Ben sadece mergedModelFromBundles kullanırsanız, ben hakkında başka bir hata var 'adlı iki farklı varlıklar olan modeller birleştirilemez ENTITY1'

Ben benzer bir sorun vardı
+1

problem - bunu çözdünüz mü? – Jeff

cevap

-2

Eski .mom uyulması model dosyası hala olduğunu ortaya çıktı. Simülatördeki uygulama paketi: Görünüşe göre, bir projeyi temizlediğinizde, simülatördeki uygulama paketini silmediğinden, uygulamayı simülatörden silerek ve sonra tekrar temizlemeden önce sorunu çözdüğünüzde problemi çözdünüz.

+4

Uygulamayı manuel olarak silmek, taşımanın bu şekilde çalışmasına izin vermeyecek şekilde yapar, bu nedenle bu durumda yukarıdaki hatayı görmezsiniz. – Mark