0

セットアップ:

CoreData モデル

  • 製品エンティティ

    • 属性「名前」
    • Relationship "common" <---> CommonData
  • CommonData エンティティ

    • 属性「product_id」
    • 関係「製品」 <---> 製品エンティティ

ビュー設定:

  • 製品エンティティを表示する NSTableView があり、NSArrayController にバインドされています
  • NSArrayController のそれぞれのアクションにバインドさadd:れた "+" と "-" の 2 つのボタンがあります。remove:
  • selection.commonコンテンツ オブジェクトにバインドされた NSObject コントローラーがあり、NSObjectController にバインドされた NSTextView があります。

Cocoa のドキュメントでは、この場合、製品エンティティが割り当てられるときに、関係エンティティが自動的に作成されないと記載されています。「+」ボタンをクリックすると、この動作を確認できます。製品は NSTableView に追加されますが、NSTextView には「No Context」と表示されます。また、製品共通エンティティをコードで作成すると、NSTextView が *product_id* を正しく表示することがわかります。

ボタンを NSArrayController にバインドしたままにしたいと思います。

質問:

  • 新しい製品エンティティが作成されたことを検出する方法はありますか?
  • ボタン アクションを介して新しい製品エンティティが作成されたときに関係エンティティを追加する最良の方法は何ですか?
4

1 に答える 1

0

add:この場合、私は単に行うだけで十分だとは思いません。[追加]ボタンを新しいアクションメソッドにリンクする必要があります。このアクションメソッドでは、ProductオブジェクトとCommonDataオブジェクトを作成してから、前者の「共通」を後者に設定する必要があります。少なくともそれは私がしたであろうことです。

いずれにせよ、この場合、新しいCommonDataオブジェクトの「検出」を行うことはやり過ぎだと思います。

于 2011-07-27T09:46:29.570 に答える