Mogeneratorのヘルプはごくわずかです。すべてのパラメータは何をしますか?
4 に答える
コマンドラインユーティリティとXcodeの両方を介して機能するパラメータ:
--base-class
:「プライベートクラス」(例_MyObject.h
)が継承する基本クラスの名前。#import "MyManagedObject.h"
これにより、同じ.h
ファイルにの形式でインポートも追加されます。ヒント:継承するクラスがライブラリにある場合、デフォルトのインポートステートメントは機能しません。回避策として、作成するプロジェクトごとに追加レベルの継承を設定し、そのクラスをライブラリから継承させることができます(たとえば、MyProjectManagedObject
手動で作成して継承する基本クラスを設定しますMyLibManagedObject
)。--template-path
.motemplate
:4つのファイルが配置されている場所へのパス。これが提供されていない場合は、すべての「アプリサポートディレクトリ」(例"/Library/Application Support/mogenerator/"
)を調べます。--template-group
:template-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を追加できます。)
- ファイルの情報ページに移動し
.xcdatamodel
ます。 - [コメント]タブを選択します。
xmod
コメントフィールドの独自の行に追加します。- モデルを保存するたびに、マシンファイルが再生成されます。
パラメータを送信するには、パラメータが独自の行にある必要があります。
これは機能します:
xmod
--base-class CLASS
--template-path PATH
そしてこれでも機能します:
xmod
--base-class CLASS --template-path PATH
しかし、これは機能しません:
xmod --base-class CLASS --template-path PATH
注:設定を有効にするには、情報ウィンドウを閉じる必要があります。
XCode 4以降、情報ウィンドウは使用できなくなったため、上記のように設定できなくても心配する必要はありません。
John Blancoのガイドを使用して、コマンドライン引数を直接mogeneratorに渡すことができるスクリプトターゲットを設定します。彼の例ではパスを少し微調整する必要があるかもしれないことに注意してください...スクリプトでaを投げ、pwd
スクリプトがすぐに実行されない場合は、スクリプトの作業ディレクトリに対してパスを確認します。
使用可能なコマンドライン引数のリストについてはmogenerator --help
、ターミナルで実行してください。AFAICT、それらはすべてスクリプトのステップから機能します。
ビルドごとにマシンファイルを自動的に再構築する場合は、「プレアクション」を介してmogeneratorを呼び出す別の方法について、この回答を参照してください。また、VCSにmogeneratorスクリプトを配置するための良いヒントもあります。
バージョン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.
また、多分役立つでしょう。どのパラメータを使用できるかを決定するため
--template-var KEY=VALUE
* .motemplateファイルを開き、「TemplateVar」のような文字列を見つけます。その後、パラメータ名が表示され、その機能を理解できるようになります。
このパラメータにはテンプレートが組み込まれています
--template-var arc=true
--template-var frc=true
--template-var modules=true