2

レガシー Web サーバーから取得した約 6 個のテーブルがあります。これらのテーブルにはすべて「タイプ」列があります。これらの列名をアプリ レベルで同期させる必要があります。

mogenerator を使用して、それが作成する基本クラスはsetPrimitiveType属性を忠実に生成します。Apple はこの方法を気に入らず、私たちのアプリを拒否しました。

モデルの属性の特定のメソッドを作成しないように mogenerator を変更することは可能ですか?

4

2 に答える 2

1

はい、mogenerator が作成するものを微調整することは可能です。これは、マシン ファイルのテンプレートのエントリを更新することによって行われます。たとえば、次の行は machine.h テンプレート ファイルからコメント アウトできます。

- (void)setPrimitive<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>)value;

- (void)setPrimitive<$Attribute.name.initialCapitalString$>Value:(<$Attribute.scalarAttributeType$>)value_;

前者は通常のアクセサです。後者はスカラー アクセサーであり、必要に応じて名前を変更することもできます。

ただし、Apple Docs Core Data Programming Guideで指摘されているように、mogenerator ではなく Core Data フレームワークが基本的なアクセサーを生成していることに注意してください。

たとえば、firstName 属性を持つエンティティを指定すると、Core Data は自動的に firstName、setFirstName:、primitiveFirstName、および setPrimitiveFirstName: を生成します。Core Data は、NSManagedObject によって表されるエンティティに対してもこれを行います。これらのメソッドを呼び出すときにコンパイラの警告を抑制するには、「宣言」で説明されているように、Objective-C 2.0 の宣言されたプロパティ機能を使用する必要があります。</p>

于 2013-05-28T18:15:53.463 に答える