0

在 Core Data 模型中,实体 A 与实体 B 有关系,删除规则设置为Cascade。对象 B 是在调用时立即删除[context deleteObject:A],还是 Core Data 等待 [context save:&error] 方法,就像对象验证一样?

我想知道删除 A 后是否可以创建一个对象 C,然后在上下文中搜索 B 并建立关系。这会阻止B被删除吗?

干杯,埃里克-保罗。

4

1 回答 1

2

“已删除”只是一种状态。当用户(或您的应用程序)保存时,该状态如何保持是一个实现细节。如果文件尚未关闭且其状态丢失,则在保存后仍可撤消。

如果您的意图是将 A 实例的 B 实例移动到 A 的另一个实例,则需要在删除第一个 A 实例之前更改关系,否则级联规则将带 Bs(根据规则的行为)。一旦删除(无论是直接删除还是通过级联规则),它就会被删除。搜索不会显示已删除的 B。

所以:如果你想保留一个 A 的 B,在删除原来的之前将 B 分配给另一个 A。否则,您需要为新的 A 创建新的 B。

于 2011-02-14T17:05:47.217 回答