L'aide pour Mogenerator est très minime. Que font tous les paramètres?
Paramètres qui fonctionnent à la fois via l'utilitaire de ligne de commande et Xcode:
--base-class
: Le nom de la classe de base que la "classe privée" (par exemple _MyObject.h
) héritera de. Cela ajoutera également une importation sous la forme de #import "MyManagedObject.h"
à la même .h
fichier. Conseil: si la classe dont vous souhaitez hériter se trouve dans une bibliothèque, l'instruction d'importation par défaut ne fonctionnera pas. Comme solution de contournement, vous pouvez avoir un niveau d'héritage supplémentaire pour chaque projet que vous créez et faire hériter cette classe de la bibliothèque (par exemple, définissez la classe de base sur MyProjectManagedObject
que vous créez manuellement et héritez de MyLibManagedObject
).--template-path
: Le chemin vers lequel les 4 .motemplate
les fichiers sont localisés. Lorsque ce n'est pas fourni, il examinera tous les "répertoires de support d'application" (par exemple "/Library/Application Support/mogenerator/"
).--template-group
: Un nom de sous-répertoire sous le template-path
répertoire à utiliser.--template-var arc=true
: Obligatoire pour les fichiers générés à compiler lors de l'utilisation d'ARC.--output-dir
: répertoire de sortie de tous les fichiers générés.--machine-dir
: Le répertoire où le _<class>.h
et _<class>.m
sera affiché dans. Si --output-dir est également défini, ce paramètre est prioritaire.--human-dir
: Le répertoire où le <class>.h
et <class>.m
sera affiché dans. Si --output-dir est également défini, ce paramètre est prioritaire.--includem
: le chemin complet vers un fichier qui comprendra tous les #import
pour tous les .h
fichiers créés. Ce fichier n'a pas besoin d'exister (c'est-à-dire qu'il sera créé pour vous s'il ne l'est pas). Ce fichier ne sera pas automatiquement inclus dans le projet pour vous. Vous devez l'inclure manuellement en le faisant glisser dans la liste Groupes et fichiers de votre projet.L'utilisation de chemins relatifs dans Xcode pour l'un des arguments ci-dessus ne fonctionnera pas car le répertoire de travail est défini sur l'un des répertoires racine du système (par exemple, Applications, Developer, Library ou System). (Je n'ai pas eu assez de temps pour déterminer lequel d'entre eux c'est exactement.)
Paramètres qui ne peuvent pas être utilisés dans Xcode:
--model
: Le chemin d'accès au fichier .xcdatamodel ne peut pas être défini dans Xcode.--list-source-files
--orphaned
--versioned
--help
(Mise à jour: je n'ai pas essayé cela sur Xcode 4, seulement Xcode 3. Pour Xcode 4, vous pouvez ajouter mogenerator comme phase de construction au lieu de suivre les étapes suivantes.)
.xcdatamodel
fichier.xmod
au champ de commentaires, sur sa propre ligne.Pour envoyer des paramètres, ils doivent être sur leur propre ligne (s):
Cela marche:
xmod
--base-class CLASS
--template-path PATH
Et même cela fonctionne:
xmod
--base-class CLASS --template-path PATH
Mais cela ne fonctionnera pas:
xmod --base-class CLASS --template-path PATH
Remarque: vous devez fermer la fenêtre Info pour que les paramètres prennent effet.
Depuis XCode 4, la fenêtre Info n'est plus disponible, alors ne vous inquiétez pas si vous ne pouvez pas le configurer comme indiqué ci-dessus.
Utilisez le guide de John Blanco pour configurer une cible de script qui vous permet de passer des arguments de ligne de commande directement à mogenerator. Notez que vous devrez peut-être légèrement modifier les chemins dans son exemple ... lancer un pwd
dans le script et vérifier les chemins par rapport au répertoire de travail du script s'il ne fonctionne pas immédiatement pour vous.
Pour obtenir la liste des arguments de ligne de commande disponibles, 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'appeler mogenerator via une "pré-action" si vous voulez reconstruire automatiquement vos fichiers machine avec chaque build. Il y a aussi une bonne astuce pour mettre un script mogenerator dans votre VCS.
Voici la sortie 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
ouvrez le fichier * .motemplate et recherchez une chaîne comme "TemplateVar". après le point, vous verrez le nom du paramètre et pourrez comprendre ce qu'il fait.
Ce paramètre a un modèle intégré
--template-var arc=true
--template-var frc=true
--template-var modules=true