mogeneratorとは
mogeneratorはCoreDataエンティティのカスタムクラスを生成するツールです。
定義したエンティティをもとにクラスファイルをXcodeで生成しますが、開発者がコードを追加したあとで再度クラスファイルを生成すると、マージ作業が必要になります。
mogeneratorはこれを回避するためにFooエンティティに対して_FooクラスとそのサブクラスFooクラスを生成します。開発者はFooを書き換えることで、_Fooが何度生成されても独自コードをマージする必要が無くなります。
つまり懐かしのEOGeneratorのCoreData版です。
導入方法
mogeneratorのページからパッケージをダウンロードしてインストールします。/usr/bin/mogeneratorがインストールされます。
下記のようにモデルファイルを指定して、-Oでファイルを作成するフォルダを指定して実行すると、ファイルが生成されます。-Oを指定しない場合はカレントフォルダに生成されます。
$ mogenerator -m MyProject.xcdatamodeld/MyProject.xcdatamodel -O ./ 4 machine files and 4 human files generated. |
作成されたファイルをXcodeプロジェクトに追加します。今後カスタムロジックはFooクラスに追加し、エンティティに変更を加えた場合にはmogeneratorを再度実行して_Fooクラスを再生成します。