0

Coredata データモデルを含むプロジェクトがあります。各クラスは Type と関係があります。タイプには、他の属性の中でも、属性「コンテンツ」が含まれています。

そのような関係でモデル化できます

Element
  dimensions
  colors
  ...

Colors
    type----->ColorType
                content

Dimension
   quantity
   unit
   type ----->DimensionType
               content
Unit
   type ----->UnitType
               content

...

ObjectX
   type ----->TypeX
               content

多くのタイプを持つよりも、私は次のことを好みます

Super
 type -----> Type
              content


Unit isa Super
Dimension isa Super
...
ObjectX isa Super

FilterPredicate を介して属性 ownerClassname など、一致する文字列が属性に含まれる nsmanagedobjects のサブセットを取得するのは簡単に思えます。

Super
 type -----> Type
              content
              ownersClassName

DimensionType は「length」、「width」、「height」の場合があります。ColorType は「hex」、「rgb」、「cymk」の場合があります。UnitType は「mm」、「cm」、「inch」などの場合があります。

要素には、1 つから複数の寸法、色などがある場合があります。また、ユーザーは「mm」、「rgb」と入力する必要がないため、特定のドロップダウン セッターが必要です。また、DBMS を破壊するようなモデルの変更を柔軟に予測する必要があります。

問題:

FilterPredicate が最初にフィルタリングできるように、ユーザーが新しいタイプを追加するときに、この ownerClassName 文字列を「Unit」、「Dimension」、「Color」に設定するにはどうすればよいですか...

4

1 に答える 1

0

awakeFromInsertモデル クラスの実行中に、リレーションシップの既定のオブジェクト値を設定します。

デフォルト値をキャッシュして、挿入のたびにストアからオブジェクトを再フェッチしないようにすることができます。

于 2013-04-03T20:56:14.990 に答える