64 votes

Comment fonctionnent les paramètres de Mogenerator, que puis-je envoyer via Xcode?

L'aide pour Mogenerator est très minime. Que font tous les paramètres?

144voto

Senseful Points 11193

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 pour MyProjectManagedObject 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.)

  1. Aller à la page d'info de l' .xcdatamodel le fichier.
  2. Choisissez l'onglet Commentaires.
  3. Ajouter xmod pour la zone commentaires, sur sa propre ligne.
  4. 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.

6voto

Kevin Clifton Points 144

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.

1voto

LostInTheTrees Points 508

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.
 

0voto

OXYMORON Points 58

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
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X