Iphone 核心数据关系删除操作-级联vs.取消vs.拒绝vs.无操作
核心数据让我大吃一惊。我有两个对象:,Card和CardSet,它们彼此之间存在多对多关系,即在CardSet a中可以有卡1、2和3,在CardSet B中可以有卡2、4和5 我正在尝试设置我的删除操作,以便:Iphone 核心数据关系删除操作-级联vs.取消vs.拒绝vs.无操作,iphone,core-data,Iphone,Core Data,核心数据让我大吃一惊。我有两个对象:,Card和CardSet,它们彼此之间存在多对多关系,即在CardSet a中可以有卡1、2和3,在CardSet B中可以有卡2、4和5 我正在尝试设置我的删除操作,以便: 如果我删除一张卡,它将从它所属的所有卡集中删除。(即,删除卡片2,然后删除卡片集A={1,3}和卡片集B={4,5}) 如果我删除一个卡片集,则该集中的所有卡片都将被删除,但属于另一个卡片集的除外。也就是说,删除卡片集A,那么卡片集B仍然是{2,4,5} 我的数据结构有两个关系定义了这
cascade
(因此,如果我删除一个CardSet,它的所有卡片都会被删除),而CardSet.CardSet的删除操作是null
(因此,如果我删除一张卡片,这些卡片集也不会被裸露)
但是,在当前设置中,如果我删除了卡片集A,那么卡片集B仍然是{2,4,5},但是卡片2实际上已从数据存储中删除,这导致在尝试访问卡片集时出现核心数据错误。如果卡仍被另一个卡组持有,我应该在这里做些什么来确保它们不会被删除?您想将
卡。卡组设置为拒绝,而不是空
。这样,卡将不会被移除,直到它不再与任何卡集相关
从
否认
如果至少有一个对象位于
关系目标,然后是
无法删除源对象
为了
例如,如果要删除
部门,您必须确保
那个部门的员工是
首先转移到其他地方(或
被解雇!)否则该部门
无法删除
不幸的是,这并没有起到作用,它只是使删除项目变得不可能。