0

Core Data に関して概念的な問題がありました。

私は OBJ と呼ばれるエンティティを持っていますが、これには OBJ エンティティとの関係があります。"An error occured."モデルをテストするときのように、非常に雄弁なメッセージを受け取ります。

各 OBJ エンティティに対して、別の OBJ エンティティに関連付けられた 1 つ以上の ACTION を定義したいと考えています。私の間違いはループから来ていると思いますが、よくわかりません。

最初に、逆の関係を定義しました (ドキュメントのアドバイスに従って、関係には常に逆の関係が必要です)。

ENTITY OBJ
Attributes:
name    
status
Relationships:
actions
<-------- >>

ENTITY ACTION    
Attributes:
name   
Relationships:
obj

OBJ は常に自分自身を参照するため、うまくいきません。したがって、私は関係を切り離しました。ACTION は OBJ を指し、OBJ は複数の ACTION を指しますが、相反関係はありません。エラーメッセージ。

私の基本的な考え方は、特定の OBJ に関連付けられた各 ACTION は、別の OBJ のステータスが許せば実行できるというものです。

これを構築してMVCの一貫性を保つには? 基本的な考え方は単純に見えますが、そうではないのは彼の業績です。Core Data のモデリングが間違っているのでしょうか? コントローラ レベルでミスを犯すことはありますか? インターフェース?このレベルでは、コードを 1 行も書いていないことに注意してください。

ありがとうございました!

4

2 に答える 2

1

あなたがしたい場合は

別の OBJ に関連付けられた 1 つまたは複数の ACTION を定義する

これは、1 つの OBJ が多くの ACTION を持つことができ、1 つの ACTION が多くの OBJ を持つことができることを意味します。

したがって、ACTION と OBJ の間の関係は、両方向で対多になるように定義する必要があります。

OBJ.actions <<-------->> ACTION.obj

「サブオブジェクト」(CATEGORY や subCATEGORY など) を使用するつもりでない限り、OBJ と OBJ の間に関係を持たないでください。

于 2012-09-20T13:00:47.833 に答える
0

「OBJ」と「ACTION」の間に新しい関係を追加することで解決策を見つけました。

OBJ                           ACTION
…                             …
Relationships                 Relationships
targetObject     <------->>   actions
conditionObject  <------->>   condition

そうしないと、逆の関係は常に同じ (自己) オブジェクトを参照します。つまり、関係を変更することで、オブジェクト自体を変更していたのです!

新しい 1 対多の関係を追加することで、間接的に OBJ 対 OBJ の関係を作成し (targetObject と conditionObject は同じものである可能性があります)、グラフの一貫性を保つことができます。

毎日、「コアデータは初心者向けではない」という意味をよりよく理解しています…</p>

于 2012-09-22T10:58:12.043 に答える