核心数据 - 拒绝删除规则导致错误
我有一个工作正常的核心数据应用程序。我现在试图将删除规则添加到几个关系中 实体1具有一组实体2核心数据 - 拒绝删除规则导致错误
如果实体1被删除并且它具有一些实体2对象,则拒绝删除,否则允许。 实体两者可以不用担心实体1
我有实体1组的关系,拒绝,和实体2的组以抵消
试图删除实体1 当我目前得到一个错误被删除[quote] Unresolved error Error Domain = NSCocoaErrorDomain Code = 1600“The operation could not be completed。(Cocoa error 1600.)”UserInfo = 0x1e882f40 {NSValidationErrorObject =(entity:Factory; id:0x1dda43e0 [/ quote]
我是否必须做点别的才能让它工作
拒绝规则不会按照您的预期工作。从Apple的文档:
如果规则是拒绝,那么在删除对象之前,必须从关系中删除目标对象或对象,否则保存时会出现验证错误。
不幸的是,拒绝规则并不妨碍删除,但会导致验证错误。所以你应该在删除之前手动检查关系是否为空。
- 一个拒绝删除规则实际上是从实体1至实体2
- 的关系,你已经删除了一个实体对象1 :当以下条件为真,则您将产生一个1600错误
- 有一个相关的对象在Entity1.entity2
- 您尝试保存上下文持久性存储
之前执行实体1 obj的缺失等你应该检查Entity1.entity2是否为空。如果不是的话,做的这些选项之一:
- 跳过删除的实体1的对象,或者,
- 无出Entity1.entity2对象,然后删除该实体1对象
是否有另一种方法比使用1600作为幻数? – 2013-10-19 22:06:25
发现它,NSValidationRelationshipDeniedDeleteError – 2013-10-19 22:09:33
我删除了detail
对象后,发生了错误,该对象的nullify
规则与它的关系为master
。同时,master
与details
的关系有cascade
规则。我将detail
的规则从nullify
更改为no action
后,该错误消失。
它对我来说仍然很奇怪。无法理解错误的原因。
会很好,如果你给文档的URL – Shamsiddin 2016-02-16 08:14:28
因此,拒绝删除规则应该被视为更多的安全网,不会让你删除你不想删除的数据? – 2017-04-20 05:42:48