Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 核心数据-删除规则问题_Iphone_Core Data_Has Many_Cascading Deletes - Fatal编程技术网

Iphone 核心数据-删除规则问题

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 ---------

我对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
----------
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被删除时被删除……很好的澄清了情况。这是一个很好的思考方式!