68

Mogeneratorのヘルプはごくわずかです。すべてのパラメータは何をしますか?

4

4 に答える 4

148

コマンドラインユーティリティとXcodeの両方を介して機能するパラメータ:

  • --base-class:「プライベートクラス」(例_MyObject.h)が継承する基本クラスの名前。#import "MyManagedObject.h"これにより、同じ.hファイルにの形式でインポートも追加されます。ヒント:継承するクラスがライブラリにある場合、デフォルトのインポートステートメントは機能しません。回避策として、作成するプロジェクトごとに追加レベルの継承を設定し、そのクラスをライブラリから継承させることができます(たとえば、MyProjectManagedObject手動で作成して継承する基本クラスを設定しますMyLibManagedObject)。
  • --template-path.motemplate:4つのファイルが配置されている場所へのパス。これが提供されていない場合は、すべての「アプリサポートディレクトリ」(例"/Library/Application Support/mogenerator/")を調べます。
  • --template-grouptemplate-path使用するディレクトリの下のサブディレクトリ名。
  • --template-var arc=true:ARCの使用中に生成されたファイルをコンパイルするために必要です。
  • --output-dir:生成されたすべてのファイルの出力ディレクトリ。
  • --machine-dir_<class>.h:と_<class>.mが出力されるディレクトリ。--output-dirも定義されている場合、このパラメーターが優先されます。
  • --human-dir<class>.h:と<class>.mが出力されるディレクトリ。--output-dirも定義されている場合、このパラメーターが優先されます。
  • --includem#import:作成されるすべてのファイルのすべてを含むファイルへのフルパス.h。このファイルは存在する必要はありません(つまり、存在しない場合は作成されます)。このファイルは、プロジェクトに自動的に含まれることはありません。プロジェクトの[グループとファイル]リストにドラッグして、手動で含める必要があります。

作業ディレクトリがシステムのルートディレクトリの1つ(アプリケーション、開発者、ライブラリ、システムなど)に設定されているため、上記の引数のいずれかにXcodeで相対パスを使用しても機能しません。(これらのどれが正確であるかを理解するのに十分な時間がありませんでした。)

Xcodeで使用できないパラメーター:

  • --model:.xcdatamodelファイルへのパスはXcodeでは設定できません。
  • --list-source-files
  • --orphaned
  • --versioned
  • --help

Xcodeを介してパラメータを実行してxmodに送信します。

(更新:Xcode 4ではこれを試していません。Xcode3のみです。Xcode4の場合、次の手順に従う代わりに、ビルドフェーズとしてmogeneratorを追加できます。)

  1. ファイルの情報ページに移動し.xcdatamodelます。
  2. [コメント]タブを選択します。
  3. xmodコメントフィールドの独自の行に追加します。
  4. モデルを保存するたびに、マシンファイルが再生成されます。

パラメータを送信するには、パラメータが独自の行にある必要があります。

これは機能します:

xmod
--base-class CLASS
--template-path PATH

そしてこれでも機能します:

xmod
--base-class CLASS --template-path PATH

しかし、これは機能しません:

xmod --base-class CLASS --template-path PATH

注:設定を有効にするには、情報ウィンドウを閉じる必要があります。

于 2010-08-28T02:50:23.487 に答える
6

XCode 4以降、情報ウィンドウは使用できなくなったため、上記のように設定できなくても心配する必要はありません。

John Blancoのガイドを使用して、コマンドライン引数を直接mogeneratorに渡すことができるスクリプトターゲットを設定します。彼の例ではパスを少し微調整する必要があるかもしれないことに注意してください...スクリプトでaを投げ、pwdスクリプトがすぐに実行されない場合は、スクリプトの作業ディレクトリに対してパスを確認します。

使用可能なコマンドライン引数のリストについてはmogenerator --help、ターミナルで実行してください。AFAICT、それらはすべてスクリプトのステップから機能します。

ビルドごとにマシンファイルを自動的に再構築する場合は、「プレアクション」を介してmogeneratorを呼び出す別の方法について、この回答を参照してください。また、VCSにmogeneratorスクリプトを配置するための良いヒントもあります。

于 2013-02-15T23:27:21.523 に答える
1

バージョン1.27現在の--helpからの出力は次のとおりです。

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.
于 2013-08-22T17:58:59.530 に答える
0

また、多分役立つでしょう。どのパラメータを使用できるかを決定するため

--template-var KEY=VALUE

* .motemplateファイルを開き、「TemplateVar」のような文字列を見つけます。その後、パラメータ名が表示され、その機能を理解できるようになります。

このパラメータにはテンプレートが組み込まれています

--template-var arc=true 
--template-var frc=true
--template-var modules=true
于 2014-06-29T14:52:19.070 に答える