我有以下实体和关系:
实体0,
实体A,
实体B,
实体C
Entity0 可以有 0 个或多个 EntityA(s)。
EntityA 与 EntityB 具有一对一的关系“entityB”(相反是“itemB”)。
EntityC 与 EntityB 具有多对多关系“entityBs”(相反是“itemCs”)。
所有关系的删除规则是“Nullify”。
我创建了一个 EntityA 并将一个 EntityB 绑定(bind)到它。
然后我创建了一个 EntityC 并将该 EntityB 绑定(bind)到它。
在删除 EntityA 期间,我这样做...
self.entityA.entityB = nil;
[self.entity0 removeEntityAObject:self.entityA];
现在,我期待与 EntityC 相关的“entityBs”也将被删除。但是,当我尝试从 EntityC 获取“entityBs”的详细信息时
NSLog(@"details %@", self.entityC.entityBs);
我在第一次通话时收到此错误:
entityBs = "<relationship fault: 0x1557abb0 'entityBs'>";
然后我点击返回按钮并再次选择 EntityC 以再次检索详细信息。然后我得到了这个:
entityBs = (
"0x1669b8b0 <x-coredata://12REF41B-4A7D-4A51-B6BC-2RHRI5DC3124/EntityB/p22>"
);
status = 0;
}) with objects {(
<EntityB: 0x166ac100> (entity: EntityB; id: 0x1669b8b0 <x-coredata://12REF41B-4A7D-4A51-B6BC-2RHRI5DC3124/EntityB/p22> ; data: <fault>)
就好像实体 B 还在那里。
我应该如何正确执行删除?
最佳答案
B 实体仍然存在,因为您已将删除规则设置为无效(并且您实际上并没有删除任何内容,您只是删除了一个引用)。要删除 B 实体,您需要做 3 件事:
nil
对 B 的引用(来自 A)关于ios - 如何正确删除 NSManagedObject 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20020463/