Nie wiem, jak wykonać następującą funkcję w Xcode 4, aby ustawić model do użycia po utworzeniu modelu z wersją.
Projekt> Model danych> Ustaw bieżącą wersję
Nie wiem, jak wykonać następującą funkcję w Xcode 4, aby ustawić model do użycia po utworzeniu modelu z wersją.
Projekt> Model danych> Ustaw bieżącą wersję
Odpowiedzi:
W Xcode 4, jeśli widzisz tylko jedną wersję swojego modelu danych w sekcji „Wersjonowany podstawowy model danych - bieżący” inspektora plików, gdy masz zaznaczony plik * .xcdatamodeld; lub masz drugą wersję pliku * .xcdatamodel pokazującą poza pakietem xcdatamodeld w nawigatorze projektu Xcode, przeczytaj poniżej.
Aby to naprawić:
1) Usuń zarówno odwołania * .xcdatamodeld, jak i * .xcdatamodel z Xcode, klikając je prawym przyciskiem myszy w nawigatorze projektu i naciskając „Usuń”.
2) Po wyświetleniu monitu przez Xcode kliknij opcję Usuń tylko odniesienia (bardzo ważne).
3) Zrestartuj Xcode, aby zachować dokładność na wypadek buforowania.
4) Ponownie dodaj pojedynczy plik * .xcdatamodeld, który zawiera oba pliki * .xcdatamodel.
Xcode powinien teraz rozpoznać relacje i umożliwić rozwinięcie pliku * .xcdatamodeld w nawigatorze projektu, aby wyświetlić oba pliki * .xcdatamodel w nadrzędnym pakiecie xcdatamodeld, pokazując również zielony znacznik wyboru obok bieżącego modelu. Powinno to również umożliwić wybranie bieżącej wersji modelu danych w inspektorze plików zamiast pokazywania tylko jednej wersji.
Dla Xcode 4.2
Kliknij YourModel.xcdatamodeld
Spraw, aby panel boczny był widoczny
W „wersjonowanym podstawowym modelu danych” wybierz „bieżące pole rozwijane”, wybierz model danych.
Teraz zielony znacznik wyboru zostanie przeniesiony do bieżącego modelu danych.
Działa to dla mnie: https://developer.apple.com/library/mac/recipes/xcode_help-core_data_modeling_tool/Articles/setting_current_version.html
wybór wersji podstawowego modelu danych
Teraz działa moja automatyczna migracja modelu db (z automatycznym kodem migracji w delegacie).
Możesz także użyć metody setter z CoraData ...
Po prostu zrób coś takiego ...
W twoim CustomCoreDataManager.m :
#import "ObjectiveRecord.h"
i wywołaj metodę init w ten sposób
- (instancetype)init {
self = [super init];
if (self) {
[[CoreDataManager sharedManager] setModelName:@"YourModelName"];
}
return self;
}