Iphone 核心数据-删除规则问题
我对coredata中的删除规则有一个奇怪的问题。我的数据模型并不复杂。我在此仅详述元素之间的关系:Iphone 核心数据-删除规则问题,iphone,core-data,has-many,cascading-deletes,Iphone,Core Data,Has Many,Cascading Deletes,我对coredata中的删除规则有一个奇怪的问题。我的数据模型并不复杂。我在此仅详述元素之间的关系: A ---------- has_many B (optional, delete rule : Cascade) has_many C (optional, delete rule : Cascade) B ---------- has C (optional, delete rule : Cascade) inv_A (delete rule : Nullify) C ---------
A
----------
has_many B (optional, delete rule : Cascade)
has_many C (optional, delete rule : Cascade)
B
----------
has C (optional, delete rule : Cascade)
inv_A (delete rule : Nullify)
C
----------
has B (optional, delete rule : Nullify)
inv_A (delete rule : Nullify)
当我删除B时,相关的C不会被删除。这就像级联删除规则不起作用
你知道我做错了什么吗
谢谢你的帮助
编辑
这只是一个重新蚀刻的问题。愚蠢的问题。。。永远不要忘记:
A) 保存后重新蚀刻数据库中的数据
B) 使用新的获取结果重新加载表(或使用NSFETECHEDRESULTCONLER)删除规则始终适用于删除其他实体。因此,当您删除
C
对象时,has C
关系将确保B
也被删除。但是,另一种方法是,has B
关系只设置为null,所以它就是这样做的
为了澄清这种情况,可以这样想:如果你只有一段感情,比如说B和C,意思是B有一个C类对象的字段。删除规则的唯一合理含义是解决如果它指向的对象被删除,那么该字段应该做什么的问题。删除规则始终适用于删除其他实体。因此,当您删除
C
对象时,has C
关系将确保B
也被删除。但是,另一种方法是,has B
关系只设置为null,所以它就是这样做的
为了澄清这种情况,可以这样想:如果你只有一段感情,比如说B和C,意思是B有一个用于C类型对象的字段。删除规则唯一合理的意思是解决这样一个问题,即如果所指向的对象被删除,该如何处理该字段。奇怪……我刚刚看到了您的编辑:您确定您的问题正确地类似于您的数据模型吗?如果是这样的话,您的
C
对象(正如我所解释的)应该只被清空,而不是在相关的B被删除时被删除……很好的澄清了情况。这是一个很好的思考方式!奇怪…我刚刚看到你的编辑:你确定你的问题正确地类似于你的数据模型吗?如果是这样的话,您的C
对象(正如我所解释的)应该只被清空,而不是在相关的B被删除时被删除……很好的澄清了情况。这是一个很好的思考方式!