我有一个运行良好的核心数据应用程序。我现在正试图将删除规则添加到几个关系中 实体1具有一组实体2
如果实体1被删除且它有一些实体2对象,则拒绝删除,否则允许。 可以删除实体二而无需担心实体1
我将实体1上的关系设置为Deny,将实体2设置为nullify
我在尝试删除实体1时遇到错误 [quote]未解决的错误Error Domain = NSCocoaErrorDomain Code = 1600“操作无法完成。(Cocoa error 1600.)”UserInfo = 0x1e882f40 {NSValidationErrorObject =(entity:Factory; id:0x1dda43e0 [/ quote]
我是否必须采取其他措施才能使其正常运作
答案 0 :(得分:7)
拒绝规则无法正常运作。来自Apple的文档:
如果规则是Deny,那么在删除对象之前,必须从关系中删除目标对象,否则在保存时会出现验证错误。
不幸的是,拒绝规则不会阻止删除,但会导致验证错误。因此,您应该在删除之前手动检查关系是否为空。
答案 1 :(得分:2)
如果满足以下条件,您将生成1600错误:
在执行Entity 1对象的删除之前,应检查Entity1.entity2是否为null。如果不是,请执行以下任一选项:
答案 2 :(得分:0)
在我删除了detail
对象nullify
之后,我发生了错误,master
对与master
的关系进行了cascade
规则。同时,details
对detail
的关系有nullify
规则。我将no action
的规则从{{1}}更改为{{1}}后,错误消失了。
我看起来仍然很奇怪。无法理解错误的原因。