2010-10-11 16 views
19

Próbuję dodać funkcjonalność podstawowych danych do istniejącego projektu. Dodałem plik modelu danych o nazwie "myProj.xcdatamodel"iPhone - Dodaj podstawowe dane do istniejącego projektu?

Mój kod ulega awarii w trakcie pobierania managedObjectModel Co to jest plik "momd"? gdzie mogę to zdobyć lub jak mogę go stworzyć? Kiedy czytam ścieżkę, zwraca ona wartość null i powoduje awarię aplikacji.

NSString *modelPath = [[NSBundle mainBundle] pathForResource:@"myProj" ofType:@"momd"]; 
NSURL *modelURL = [NSURL fileURLWithPath:modelPath]; 

Odpowiedz

29

Plik momd jest wersjonowanym odpowiednikiem pliku mom. W tym momencie masz dwie możliwości:

  1. Dodaj wersję do istniejącego modelu myProj.xcdatamodel. W Xcode wybierz plik myProj.xcdatamodel i wybierz Design -> Model danych -> Dodaj wersję modelu z menu w Xcode.
  2. Używaj tylko nieskatalogowanego pliku modelu. Zmień dostarczony kod na:

    NSString * modelPath = [[NSBundle mainBundle] ścieżkaForResource: @ "myProj" ofType: @ "mom"]; NSURL * modelURL = [plik NSURLURLWithPath: modelPath];

Jeśli utworzysz aplikację opartą na nawigacji (użyj danych podstawowych do przechowywania) z domyślnego szablonu w Xcode, zauważysz, że plik modelu jest już wersjonowany.

W celu uzyskania dalszych informacji, patrz: Model Versions

+0

dzięki, spróbuję to jutro, kiedy mam dostępu do kodu? Jak ktokolwiek może to wiedzieć? :(nie można znaleźć tego w dokumentacji – aryaxt

+0

Zobacz Przewodnik programowania wersji danych podstawowych i migracji danych - http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/CoreDataVersioning/Articles /vmVersioning.html%23//apple_ref/doc/uid/TP40004714-SW1 –

5

z „mama” lub „momd” plik jest skompilowana wersja pliku .xcdatamodel. Być może nie dodałeś pliku .xcdatamodel do celu, aby nie został skompilowany? Zrób z tego Informacje i upewnij się, że buduje twój cel.

Zobacz także kod przykładowy CoreDataBooks.

Powiązane problemy