Objective c 删除NSManagedObject时的其他操作

Objective c 删除NSManagedObject时的其他操作,objective-c,core-data,nsmanagedobject,Objective C,Core Data,Nsmanagedobject,我有一个核心数据“ShoppingList”,其中包含“Item”对象。我将显示顺序存储为每个项目的属性 每当删除项目时,我想更新购物列表中所有其他项目的显示顺序。当我在我的视图控制器中使用它(从中删除项目)时,执行此操作的代码工作正常,但由于它确实与业务对象相关,而不是与视图相关,因此最好将其放在ShoppingList或item中 理想情况下,我希望它纳入删除该项目。到目前为止,我尝试了以下方法: 1) 自定义生成ShoppingList.RemoveItemsObject的标准核心数据(确

我有一个核心数据“ShoppingList”,其中包含“Item”对象。我将显示顺序存储为每个项目的属性

每当删除项目时,我想更新购物列表中所有其他项目的显示顺序。当我在我的视图控制器中使用它(从中删除项目)时,执行此操作的代码工作正常,但由于它确实与业务对象相关,而不是与视图相关,因此最好将其放在ShoppingList或item中

理想情况下,我希望它纳入删除该项目。到目前为止,我尝试了以下方法:

1) 自定义生成ShoppingList.RemoveItemsObject的标准核心数据(确保在之前.之后观察KVO)。这种方式的奇怪之处在于,传递的项在到达我的代码(我需要正确处理显示顺序)之前就被剥离了与其他核心数据实体的关系。 2) 自定义Item.didTurnIntoFault。同样的情况也适用于此阶段,但即使是项目的属性也会消失


一个答案是简单地在ShoppingList上定义一个新方法,该方法执行我的处理,然后调用原始removeItemsObject。但我更想知道的是,无论何时从任何地方移除物品,都会处理好。例如,当我自定义awakeFromInsert时,这非常有效-我知道每当创建一个项目时,都会为我设置某些东西。但我很惊讶没有等效的删除方法。

您是否尝试实现
preparefordelection
?听起来这正是你要找的

您可以实现此方法来执行删除对象之前所需的任何操作,例如在关系解除之前进行自定义传播,或者使用键值重新配置对象