2012-04-03 58 views
1

我有一個包含'Item'對象的核心數據'ShoppingList'。我將顯示訂單作爲每個商品的屬性進行存儲。刪除NSManagedObject時的附加動作

我想在每次刪除商品時更新購物清單中所有其他商品的顯示順序。這樣做的代碼在我的視圖控制器(從刪除項目的位置)中使用它時正常工作,但由於它確實與業務對象相關而不是視圖,因此最好放置在ShoppingList或Item中。

理想情況下,我希望將它合併到刪除項目中。到目前爲止,我已經嘗試了以下內容:

1)自定義標準Core Data生成的ShoppingList.RemoveItemsObject(確保觀察KVOafterafter)。這種方式的奇怪之處在於,傳遞的項目在到達我的代碼之前被剝離了與其他核心數據實體的關係,我需要正確處理顯示順序。 2)自定義Item.didTurnIntoFault。同樣適用 - 但這個階段甚至沒有物品的屬性。

一個答案就是簡單地定義ShoppingList上的一個新方法,它執行我的處理,然後調用原始removeItemsObject。但我更願意知道,每當從任何地方移除物品時,都會照顧到這一點。例如,當我自定義awakeFromInsert時,這很好地工作 - 我知道每當創建項目時,都會爲我設置一些特定的事物。但我很驚訝沒有相應的刪除。

回答

3

您是否試圖實施prepareForDeletion?聽起來像是你正在尋找的東西。

The doc says:

您可以實現此方法來執行對象之前所需要的任何操作被刪除,如自定義傳播關係被撕裂下來之前,或使用鍵 - 值觀察對象的重新配置。

+0

完美 - 謝謝。不知道我錯過了這一點。 – 2012-04-03 17:28:03