删除核心数据中的多个对象

时间:2012-02-16 10:44:43

标签: iphone ios core-data

我有一个NSManagedObject子类,它有一些深层关系。这里受影响的关系如下(例如):

order.subOrders

suborder.items

因此,一个订单有多个子订单(to-many),一个子订单有多个商品(to-many)。

假设我的订单有3个子订单,每个子订单有3个项目。我需要在大约相同的时间从每个子订单中删除一个项目。

所以,我尝试了以下内容:

for(Item *item in itemsToBeDeleted) {
        [context deleteObject:item];
}
[context save:&error];

然后我重新运行应用程序,似乎只删除了其中一项。因此,我删除了剩余的2个项目(使用相同的方法)并重新运行应用程序,但同样只删除了一个。

任何人都可以指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

我的猜测是你只在Item集合中放了一个itemsToBeDeleted对象。您可以发布显示该集合如何填充的代码吗?

答案 1 :(得分:0)

如果打开核心数据模型对象的右侧面板,则会有实体的删除规则。如果将最顶层权限的删除规则设置为“级联”,则删除将沿关系向下传播。

Delete rule