我有一对多的关系A <--- >> B(订购了多对多的部分).
所以我遇到了与此问题中所述完全相同的问题"核心数据无效规则不起作用?" :我删除了一个与A有关系的B,然后立即计算剩余B的数量,A与之有关系,并且与以前相同.该问题中接受的答案是使用级联而不是无效,因为nullify的作用是:
删除对象时,Nullify将指针设置为null.如果你有一个指针数组,它不会删除它,它只是将它设置为null.
我看到这个答案有两个问题:
经过一些实验我发现,如果我删除B的实例,它会被立即删除,但是与A的关系不会立即被清除,而是仅在稍微延迟之后:
// Method is called by pressing a button
-(void)removeLastBOfA:(A *)instanceOfA
{
// Prints 4
NSLog(@"fetch all b's count before:%d", [context fetchAllBs].count);
// Prints 4
NSLog(@"A's relation to B count before: %d", instanceOfA.relationToB.count);
[context deleteObject:[instanceOfA.relationToB lastObject]];
// Prints 3
NSLog(@"fetch all b's count after:%d", [context fetchAllBs].count);
// Prints 4, but should be 3. Last Object of A's relationToB is still …Run Code Online (Sandbox Code Playgroud)