包含OneToOne
关系Library -- Boss
:
Library --(Cascade)--> Boss
Boss --(No Action)--> Library
用例:替换老板。替换意味着从数据库中删除旧值,在数据库中保存新值并设置关系的新值。如果我设置一个新boss并保存上下文,则插入新boss,将关系设置为新boss,但旧boss不会被删除,只会使库密钥无效。我如何从数据库中删除旧老板?
答案 0 :(得分:0)
您可以将NSManagedObject子类化为Boss,并覆盖 - (void)willSave,并在必要时删除该方法中的对象。
作为旁注,在这种情况下,您应该使用Nullify而不是No action。没有动作会造成麻烦,而且很少有用。见https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html
答案 1 :(得分:0)
所以你将库和boss之间的删除规则设置为“cascade”,对吧? 在这种情况下,只有当没有其他实体提到老板时,老板才会被删除。引用计数的排序。您确定您的数据库中没有当前指向老板实体的记录/实体吗?