L'aide pour Mogenerator est très minime. Que font tous les paramètres?
Réponses
Trop de publicités?Les paramètres qui fonctionnent à la fois via l'utilitaire de ligne de commande et Xcode:
-
--base-class
: Le nom de l'af de la classe de base qui le "cours privé" (par exemple,_MyObject.h
) va hériter de. Ce sera également ajouter une importation sous la forme d'#import "MyManagedObject.h"
à de même.h
le fichier. Astuce: si la classe que vous souhaitez hériter de est situé dans une bibliothèque, la déclaration d'importation par défaut ne fonctionne pas. Comme solution de contournement, vous pourriez avoir un niveau supplémentaire de la succession pour chaque projet que vous créez et que cette classe hérite de la bibliothèque (par exemple, définir la classe de base pourMyProjectManagedObject
lequel vous créez manuellement et hériter d'MyLibManagedObject
). -
--template-path
: Le chemin où la de 4.motemplate
fichiers sont situés. Lorsque cela n'est pas fourni, il regarde tous les "de support de l'application des répertoires" (par exemple,"/Library/Application Support/mogenerator/"
). -
--template-group
: Un nom de sous-répertoire sous l'template-path
répertoire à utiliser. -
--template-var arc=true
: Requis pour les fichiers générés à la compilation lors de l'utilisation de l'ARC. -
--output-dir
: Le répertoire de sortie pour tous les fichiers générés. -
--machine-dir
: Le répertoire où l'_<class>.h
et_<class>.m
seront de sortie. Si l'option --output-dir est également définie, ce paramètre est prioritaire. -
--human-dir
: Le répertoire où l'<class>.h
et<class>.m
seront de sortie. Si l'option --output-dir est également définie, ce paramètre est prioritaire. -
--includem
: le chemin d'accès complet à un fichier qui contient toutes les"#import
pour l'ensemble de l'.h
fichiers qui sont créés. Ce fichier n'a pas besoin d'exister (c'est à dire, il sera créé pour vous si il n'est pas). Ce fichier ne sera pas inclus dans le projet automatiquement pour vous. Vous devez l'inclure manuellement en le faisant glisser dans les Groupes Et les Fichiers de liste de votre projet.
Utiliser des chemins relatifs dans Xcode pour aucun des arguments ci-dessus ne fonctionne pas depuis le répertoire de travail est fixé à l'un des répertoires racine du système (par exemple, des Applications, de Développeur, de la Bibliothèque ou du Système). (Je n'ai pas eu assez de temps pour savoir laquelle de ces il en est exactement.)
Les paramètres qui ne peuvent être utilisés dans Xcode:
-
--model
: Le chemin d'accès à l' .fichier xcdatamodel, ne peut pas être défini dans Xcode. --list-source-files
--orphaned
--versioned
--help
En cours d'exécution et d'envoi des paramètres de xmod via Xcode:
(Mise à jour: je n'ai pas essayé ce Xcode 4, seulement Xcode 3. Pour Xcode 4, vous pouvez ajouter mogenerator comme une phase de construction au lieu de suivre les étapes suivantes.)
- Aller à la page d'info de l'
.xcdatamodel
le fichier. - Choisissez l'onglet Commentaires.
- Ajouter
xmod
pour la zone commentaires, sur sa propre ligne. - Chaque fois que vous enregistrez le modèle, il va régénérer les fichiers de la machine pour vous.
Pour envoyer des paramètres, ils doivent être sur leur propre ligne(s):
Ceci fonctionne:
xmod
--base-class CLASS
--template-path PATH
Et même cela fonctionne:
xmod
--base-class CLASS --template-path PATH
Mais, cela ne fonctionne pas:
xmod --base-class CLASS --template-path PATH
Remarque: Vous devez fermer la fenêtre d'informations pour que les paramètres prennent effet.
Comme de XCode 4, la fenêtre d'informations n'est plus disponible, donc ne vous inquiétez pas si vous ne pouvez pas configurer comme répondu plus haut.
Utilisation John Blanco guide pour configurer un script qui permet de passer des arguments de ligne de commande directement à mogenerator. Notez que vous pourriez avoir à modifier les chemins d'accès dans son exemple légèrement... jeter un pwd
dans le script et vérifiez les chemins contre le script du répertoire de travail s'il ne fonctionne pas pour tout de suite.
Pour une liste des arguments de ligne de commande, exécutez mogenerator --help
dans le Terminal. AFAICT, tous travaillent à partir de l'étape de script.
Voir cette réponse pour une autre façon d'invoquer mogenerator par l'intermédiaire d'un "pré-action" si vous voulez reconstruire automatiquement vos fichiers de la machine à chaque construction. Il y a également une bonne idée de mettre un mogenerator script dans votre CV.
Voici le résultat de --help à partir de la version 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.
Aussi, peut-être sera utile. Pour déterminer quels paramètres peuvent être utilisés pour
--template-var KEY=VALUE
ouvrir le fichier * .motemplate et rechercher une chaîne du type "TemplateVar". Après le point, vous verrez le nom du paramètre et pourrez comprendre ce qu’il fait.
Ce params a un template intégré
--template-var arc=true
--template-var frc=true
--template-var modules=true