Objective c 已删除的具有关系的对象由AfIncrementAllStore重新插入

Objective c 已删除的具有关系的对象由AfIncrementAllStore重新插入,objective-c,core-data,afincrementalstore,Objective C,Core Data,Afincrementalstore,在我的数据模型中,我有用户和通知,其中一个用户可以有多个通知。在通知中,用户关系的删除规则设置为null 当我删除一条记录时,我可以在controllerWillChangeContent中看到,它实际上执行了删除,但随后立即执行了同一条记录的插入。这似乎源于这种关系 在executeSaveChangesRequest中,如果我记录更改请求,我会得到: <NSSaveChangesRequest: 0xff441e0> { inserts (), updates (( "0xa95

在我的数据模型中,我有用户和通知,其中一个用户可以有多个通知。在通知中,用户关系的删除规则设置为null

当我删除一条记录时,我可以在controllerWillChangeContent中看到,它实际上执行了删除,但随后立即执行了同一条记录的插入。这似乎源于这种关系

在executeSaveChangesRequest中,如果我记录更改请求,我会得到:

<NSSaveChangesRequest: 0xff441e0> { inserts (), updates ((
"0xa95e9d0 <x-coredata://76F3..F8CF/User/p__af_1>"
)), deletes ((
"0xa983880 <x-coredata://76F34AF...BAF8CF/Notification/p__af_228>"
)) locks () }
{inserts(),更新((
“0xa95e9d0”
)),删除((
“0xa983880”
))锁()}
我想这看起来不错。它将删除通知,并更新用户,使其不再具有该通知

经过一些挖掘,我发现不需要的插入发生在AFIncrementalStore的
-newValueForRelationship
中。因此,出于某种原因,删除的对象通过用户的关系返回


如何确保已删除的对象保持删除状态,并且
newValueForRelationship
不会尝试重新插入它?

很简单,只需将
shouldFetchRemoteValuesForRelationship
设置为返回false即可。我不能说我明白为什么,这可能会反过来咬我,但现在,它解决了这个问题