3

最近、外部の開発者から CoreData プロジェクトを継承しました。自動生成されたすべての NSManagedObject サブクラスを見つけることを期待していた場所で、代わりに、経験のないツールである Mogenerator によって生成されたクラス (いくつかのグーグルで明らかになったもの) があります。

このツールを使用する目的は、モデルが変更されてクラスが再生成されたときに失われることを心配することなく、CoreData エンティティに対応するクラスにカスタム コードを追加できるようにすることだと理解しています... しかし、私はできますこれはとにかくカテゴリを使用して。

私は現在、カテゴリよりも Mogenerator を使用することに本当の利点があるとは考えていません。

Mogenerator とカテゴリを使用する利点/欠点は何ですか? Mogenerator は、その他の目的にも使用できますか?

4

2 に答える 2

8

クラスとカテゴリを使用する利点は、サブクラス化とオーバーライドによって機能を拡張できることです。

たとえば、モデルにサブエンティティがある場合、共通のマスター クラスから機能を継承することができます。サブクラスは、目的のメソッドをオーバーライドすることで特定の動作を定義できます。一方、カテゴリで定義されたメソッドをオーバーライドすることは可能ですが、お勧めしません。これは、カテゴリとして実装されたロジックをすべてのサブクラスで繰り返す必要があることを意味します。

管理対象オブジェクトの多くのコードはボイラープレートであるため、mogenerator が自動的に実行するのは非常に便利です。

于 2012-11-19T17:13:28.747 に答える
0

彼らの「サイト」から http://rentzsch.github.com/mogenerator/

mogenerator は、Core Data カスタム クラスの Objective-C コードを生成します

Xcode とは異なり、mogenerator はエンティティごとに 2 つのクラスを管理します。1 つはマシン用、もう 1 つは人間用です。

マシンクラスはデータモデルに合わせていつでも上書きでき、人間の作業は簡単に保存されます

つまり、基本的にカテゴリとは関係ありません。Mogenerator (モデル オブジェクト ジェネレーター) は、お預かりしたプロジェクトで結果を確認したコードを生成します。

于 2012-10-13T11:25:40.197 に答える