1

存在包含OneToOne关系Library -- Boss

Library --(Cascade)--> Boss
Boss    --(No Action)--> Library

用例:更换老板。替换意味着从数据库中删除旧值,在数据库中保存新值并设置关系的新值。如果我设置一个新老板并保存上下文,则插入新老板,将关系设置为新老板,但不会删除旧老板,它只会使库密钥无效。我将如何从数据库中删除旧老板?

4

2 回答 2

0

所以你将库和老板之间的删除规则设置为“级联”,对吗?在这种情况下,只有当没有其他实体引用老板时,老板才会被删除。引用计数的排序。您确定您的数据库中没有当前引用老板实体的记录/实体吗?

于 2013-02-23T22:02:42.593 回答
0

您可以为 Boss 子类化 NSManagedObject,并覆盖 -(void)willSave,并在必要时删除该方法中的对象。

作为旁注,在这种情况下,您应该使用 Nullify 而不是 No action。没有行动会引起麻烦,而且很少有用。请参阅https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html

于 2013-02-23T21:55:41.057 回答