Objective c 我可以指定删除从核心数据关系中删除的对象吗?

Objective c 我可以指定删除从核心数据关系中删除的对象吗?,objective-c,core-data,Objective C,Core Data,我们在一对多关系中有一个列表实体和一个ListingAddress实体。如果没有列表,ListingAddress不应该存在。我希望从列表的地址关系中删除的任何ListingAddress都从上下文中删除。那可能吗,还是我必须手工做呢?你必须手工做 如果列表被删除,那么就很简单了。看。您可以将其设置为“级联”,从而自动删除相关对象。当然,您仍然需要保存对上下文所做的任何更改: 级联 删除关系目标处的对象。 例如,如果删除一个部门,则同时解雇该部门中的所有员工 但在您的情况下,如果列表未被删除,则

我们在一对多关系中有一个列表实体和一个ListingAddress实体。如果没有列表,ListingAddress不应该存在。我希望从列表的地址关系中删除的任何ListingAddress都从上下文中删除。那可能吗,还是我必须手工做呢?

你必须手工做

如果列表被删除,那么就很简单了。看。您可以将其设置为“级联”,从而自动删除相关对象。当然,您仍然需要
保存
对上下文所做的任何更改:

级联

删除关系目标处的对象。 例如,如果删除一个部门,则同时解雇该部门中的所有员工

但在您的情况下,如果列表未被删除,则必须手动清理孤立的ListingAddress对象。以下是一些关于这个问题的帖子:


你必须用手来做

如果列表被删除,那么就很简单了。看。您可以将其设置为“级联”,从而自动删除相关对象。当然,您仍然需要
保存
对上下文所做的任何更改:

级联

删除关系目标处的对象。 例如,如果删除一个部门,则同时解雇该部门中的所有员工

但在您的情况下,如果列表未被删除,则必须手动清理孤立的ListingAddress对象。以下是一些关于这个问题的帖子:


从关系中删除实体时,没有自动删除实体的方法,但您可以执行相反的操作,您可以在删除实体时从关系中删除实体。对ListingAddress实体使用Nullify delete规则。它仍然只需要一行代码。您编码的是删除,而不是删除。除非是多对多关系,否则这应该符合您的目的。

从关系中删除实体时,没有自动删除实体的方法,但您可以执行相反的操作,您可以在删除实体时从关系中删除实体。对ListingAddress实体使用Nullify delete规则。它仍然只需要一行代码。您编码的是删除,而不是删除。除非是多对多关系,否则这应该符合您的目的。

如果有ListingAddress的孤儿,您可以签入willSave方法,如果有,您可以将其设置为删除

override func willSave() {
    super.willSave()

    if self.deleted {
      return
    }

    if self.listingInverseRelationship == nil {
      self.managedObjectContext?.deleteObject(self)
    }
  }

如果存在ListingAddress的孤立子级,可以签入willSave方法,如果存在,可以将其设置为删除

override func willSave() {
    super.willSave()

    if self.deleted {
      return
    }

    if self.listingInverseRelationship == nil {
      self.managedObjectContext?.deleteObject(self)
    }
  }

我认为这些都是在我删除我的列表时调用的-我对这样的情况感兴趣,例如,我将其地址关系设置为空NSSet。谢谢。我稍微调整了一下,所以这是对问题的直接回答-希望没问题。我以为这些都是在我删除列表时调用的-我感兴趣的是,例如,我将其地址关系设置为空NSSet。谢谢。我已经稍微调整了一下,所以这是对问题的直接回答-希望没问题。同意,您需要从删除实体的角度来看这一点。让核心数据管理关系完整性。同意,您需要从删除实体的角度来看待这一点。让核心数据管理关系完整性。