2012-04-03 12 views
1

を削除されたときに、私は「項目」のオブジェクトが含まれているコアデータ「ShoppingList」を持っています。私は各項目の属性として表示順序を保存します。追加のアクションNSManagedObjectは

他のアイテムは、アイテムが削除されるたびに買い物リストのアイテムの表示順序を更新したいと思います。これを行うためのコードは、ビューコントローラで(アイテムが削除されている場所から)ビューコントローラを使用すると正常に動作しますが、実際にはビューではなくビジネスオブジェクトに関連しているため、ShoppingListまたはItem 。

理想的には、私はそれが項目の削除に組み入れたいと思います。これまでのところ、私は次のことを試してみました:

1)標準のコアデータをカスタマイズする()KVOのbefore.afterを守って確認してShoppingList.RemoveItemsObjectを生成。この方法で奇妙なのは、コードを取得する前に、渡されたアイテムが他のコアデータエンティティとの関係を剥奪されていることです。表示オーダーを正しく処理する必要があります。 2)Item.didTurnIntoFaultをカスタマイズします。同じことが適用されますが、この段階ではアイテムの属性さえも消えてしまいます。

一つの答えは、単に私の処理を行い、その後、元removeItemsObjectを呼び出しShoppingListに新しいメソッドを定義することです。しかし、アイテムをどこからでも取り除くたびに、これが処理されることを知りたいです。 awakeFromInsertをカスタマイズするとうまくいきます。たとえば、アイテムが作成されるたびに、私のためにセットアップされたものがあることはわかっています。しかし、私は削除に相当するものがないことに驚いています。

答えて

3

あなたはprepareForDeletionを実装しようとしましたか?あなたが探しているものとまったく同じように聞こえる。

The doc says:

あなたは関係が取り壊される前に、このようなカスタムの伝播などのオブジェクトが削除される前に必要な操作を実行するには、このメソッドを実装し、またはキー値監視を使用してオブジェクトを再構成することができます。

+0

パーフェクト - あなたに感謝します。どのように私はこれを逃したか分からない。 –

関連する問題