我有以下实体和关系:
Entity0, EntityA, EntityB, EntityC
Entity0可以包含0个或多个EntityA。 EntityA与EntityB具有一对一的关系“entityB”(反向是“itemB”)。 EntityC与EntityB具有多对多关系“entityBs”(反向是“itemC”)。 所有关系的删除规则都是“Nullify”。
我创建了一个EntityA并将一个EntityB绑定到它。 然后我创建了一个EntityC并将该EntityB绑定到它。
在删除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仍在那里。 我该如何正确执行删除?
答案 0 :(得分:3)
B实体仍然存在,因为您已将删除规则设置为无效(并且您实际上没有删除任何内容,您只是删除了引用)。要删除B实体,您需要做三件事:
nil
对B的引用(来自A)