Jak działają parametry Mogenerator, które mogę wysłać przez Xcode? [zamknięte]
Pomoc dla Mogeneratora jest bardzo minimalna. Do czego służą wszystkie parametry?
4 answers
Parametry, które działają zarówno za pomocą narzędzia wiersza poleceń, jak i Xcode:
-
--base-class
: Nazwa klasy bazowej, od której dziedziczy "Klasa prywatna" (np._MyObject.h
). Spowoduje to również dodanie importu w postaci#import "MyManagedObject.h"
do tego samego pliku.h
. Wskazówka: jeśli Klasa, od której chcesz dziedziczyć, znajduje się w bibliotece, domyślna Instrukcja import nie będzie działać. Jako obejście możesz mieć dodatkowy poziom dziedziczenia dla każdego tworzonego projektu i mieć tę klasę dziedziczą z biblioteka włączona (np. Ustaw klasę bazową naMyProjectManagedObject
, którą tworzysz ręcznie i dziedziczysz zMyLibManagedObject
). -
--template-path
: ścieżka do miejsca, w którym znajdują się 4.motemplate
pliki. Jeśli nie jest to zapewnione, będzie wyglądać na wszystkie "katalogi obsługi aplikacji" (np."/Library/Application Support/mogenerator/"
). -
--template-group
: nazwa podkatalogu pod katalogiemtemplate-path
do użycia. -
--template-var arc=true
: wymagane dla wygenerowanych plików do kompilacji podczas korzystania z ARC. -
--output-dir
: wyjście katalog wszystkich wygenerowanych plików. -
--machine-dir
: katalog, do którego będą wyświetlane_<class>.h
i_<class>.m
. Jeśli zdefiniowana jest również opcja --output-dir, parametr ten ma pierwszeństwo. -
--human-dir
: katalog, do którego zostaną wypisane<class>.h
i<class>.m
. Jeśli zdefiniowana jest również opcja --output-dir, parametr ten ma pierwszeństwo. -
--includem
: pełna ścieżka do pliku, który będzie zawierał wszystkie#import
dla wszystkich utworzonych plików.h
. Ten plik nie musi istnieć (tzn. zostanie stworzony dla Ciebie, jeśli nie). Ten plik nie zostanie automatycznie dołączony do projektu. Musisz dołączyć go ręcznie, przeciągając go do listy Grupy i pliki projektu.
Używanie ścieżek względnych w Xcode dla któregokolwiek z powyższych argumentów nie będzie działać, ponieważ katalog roboczy jest ustawiony na jeden z katalogów głównych systemu (np. Aplikacje, programista, Biblioteka lub System). (Nie miałem wystarczająco dużo czasu, aby dowiedzieć się, który z nich jest dokładnie.)
Parametry, których nie można użyć w Xcode:
-
--model
: droga do .plik xcdatamodel, nie może być ustawiony w Xcode. --list-source-files
--orphaned
--versioned
--help
Uruchamianie i wysyłanie parametrów do xmod przez Xcode:
(Aktualizacja: nie próbowałem tego na Xcode 4, tylko Xcode 3. Dla Xcode 4, można dodać mocenerator jako fazy budowania zamiast wykonując następujące kroki.)
- Idź do strony informacyjnej pliku
.xcdatamodel
. - wybierz kartę Komentarze.
- Dodaj
xmod
do pola komentarzy, w jego własnej linii. - za każdym razem, gdy zapiszesz model, zregeneruje on Pliki maszyny dla Ciebie.
Aby wysłać parametry, muszą być na własnej linii:
To działa:
xmod
--base-class CLASS
--template-path PATH
I nawet to działa:
xmod
--base-class CLASS --template-path PATH
Ale to nie zadziała:
xmod --base-class CLASS --template-path PATH
Uwaga: musisz zamknąć okno informacji, aby ustawienia zostały wykonane efekt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-02 04:11:24
Począwszy od XCode 4, okno informacji nie jest już dostępne, więc nie martw się, jeśli nie możesz skonfigurować go zgodnie z odpowiedzią powyżej.
Użyj John Blanco ' s guide aby skonfigurować cel skryptowy, który pozwala na przekazywanie argumentów wiersza poleceń bezpośrednio do mogeneratora. Zauważ, że być może będziesz musiał nieco dostosować ścieżki w jego przykładzie... Wrzuć pwd
do skryptu i sprawdź ścieżki do katalogu roboczego skryptu, jeśli nie zostanie uruchomiony od razu.
Na listę dostępne argumenty wiersza poleceń, uruchom mogenerator --help
W Terminalu. AFAICT, wszystkie działają od etapu skryptowania.
Zobacz ta ODPOWIEDŹ dla innego sposobu wywołania mogenerator za pomocą "pre-action", jeśli chcesz automatycznie odbudować pliki maszynowe przy każdej kompilacji. Jest też dobra wskazówka na wprowadzenie skryptu mogenerator do VCS.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:02
Oto wyjście z --help od wersji 1.27
mogenerator: Usage [OPTIONS] <argument> [...]
-m, --model MODEL Path to model
-C, --configuration CONFIG Only consider entities included in the named configuration
--base-class CLASS Custom base class
--base-class-import TEXT Imports base class as #import TEXT
--base-class-force CLASS Same as --base-class except will force all entities to have the specified base class. Even if a super entity exists
--includem FILE Generate aggregate include file for .m files for both human and machine generated source files
--includeh FILE Generate aggregate include file for .h files for human generated source files only
--template-path PATH Path to templates (absolute or relative to model path)
--template-group NAME Name of template group
--template-var KEY=VALUE A key-value pair to pass to the template file. There can be many of these.
-O, --output-dir DIR Output directory
-M, --machine-dir DIR Output directory for machine files
-H, --human-dir DIR Output directory for human files
--list-source-files Only list model-related source files
--orphaned Only list files whose entities no longer exist
--version Display version and exit
-h, --help Display this help and exit
Implements generation gap codegen pattern for Core Data.
Inspired by eogenerator.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-22 17:58:59
Również, może będzie pomocne. Dla określenia, które paramy mogą być użyte dla
--template-var KEY=VALUE
Otwórz*.motemplate pliku i znaleźć ciąg znaków jak " TemplateVar."po punkcie zobaczysz nazwę parametru i będziesz w stanie zrozumieć, co robi.
Ten params ma wbudowany szablon
--template-var arc=true
--template-var frc=true
--template-var modules=true
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-29 14:57:32