2

我有一个运行良好的核心数据应用程序。我现在正在尝试将删除规则添加到实体 1 有一组实体 2 的几个关系中

如果实体 1 被删除并且它有一些实体 2 对象,则拒绝删除,否则允许。可以删除实体 2 而无需担心实体 1

我将实体 1 的关系设置为拒绝,而实体 2 的关系设置为无效

我目前在尝试删除实体 1 时遇到错误 [quote]Unresolved error Error Domain=NSCocoaErrorDomain Code=1600 “操作无法完成。(Cocoa 错误 1600。)”UserInfo=0x1e882f40 {NSValidationErrorObject=(实体:工厂;id:0x1dda43e0 [/quote]

我是否必须做其他事情才能使其正常工作

4

3 回答 3

7

拒绝规则没有按您的预期工作。来自 Apple 的文档:

如果规则为拒绝,则在删除对象之前,必须从关系中删除目标对象或多个对象,否则在保存时会出现验证错误。

不幸的是,拒绝规则不会阻止删除,但会导致验证错误。所以你应该在删除之前手动检查关系是否为空。

于 2013-03-01T11:24:52.213 回答
2

当以下情况成立时,您将生成 1600 错误:

  • 拒绝删除规则在实体 1 到实体 2 的关系中生效
  • 您已删除 Entity 1 对象
  • Entity1.entity2 处有一个相关对象
  • 您尝试将持久存储保存到上下文

在执行实体 1 对象的删除之前,您应该检查 Entity1.entity2 是否为空。如果不是,请执行以下任一选项:

  • 跳过实体 1 对象的删除,或者,
  • 将 Entity1.entity2 对象归零,然后删除 Entity 1 对象
于 2012-11-20T05:14:25.677 回答
0

在我删除了与它的关系有规则的detail对象后,错误发生在我身上。同时,对与 的关系有规则。在我将' 规则从更改为 后,错误消失了。nullifymastermastercascadedetailsdetailnullifyno action

它对我来说仍然很奇怪。无法理解错误的原因。

于 2014-12-09T15:42:13.997 回答