1

からのエンティティのコレクションを表すためNSTableViewにバインドされた 1 つの列を持つ があります。削除アクションに接続されている「削除」ボタンもあり、すべて正常に機能します-テーブルにデータが表示され、「削除」をクリックすると、エンティティがテーブルから削除されるなど.NSArrayControllerNSManagedObjectContextNSArrayController's

ただし、この削除はオブジェクト グラフでのみ発生しているようで、ディスクに永続化されることはありません。このような変更をオブジェクトグラフに自動的に永続化するフラグまたは方法はありますか、またはIBAction削除ボタンに new を導入し、最初removeにコントローラーで明示的に呼び出し、次にsaveonを明示的に呼び出す唯一の方法はありNSManagedObjectContextますか?

4

1 に答える 1

3

あなたは2つの別々の問題について話しているようです:

  1. 「コンテキストからの削除」と「コレクションからの削除」および
  2. コンテキストへの変更をすぐに保存します。

コンテンツ配列が他のソースにバインドされている場合は、コンテンツ配列バインディングの [削除時にオブジェクトを削除] オプションをオンにできます。コンテンツが単に提供されたエンティティのすべてのインスタンスである場合 (つまり、コンテンツ/配列バインディングが確立されておらず、すべての Foo インスタンスを取得しているだけの場合)、オブジェクトに削除のマークが付けられることを期待します。変更をストアに保存すると、最終的にオブジェクトが削除されます。

変更をすぐに保存するには、「このオブジェクトを削除して保存する」アクションを渡すための独自の別のアクションが必要になるでしょう。その場合、削除/削除を実行し、管理対象オブジェクトのコンテキストに processPendingChangesを要求してから、保存ルーチンを呼び出すことができます。

于 2009-12-23T21:06:35.413 に答える