在我的数据模型中,我有用户和通知,其中一个用户可以有多个通知。在 Notifications 中,用户关系的删除规则设置为 Nullify。
当我删除一条记录时,我可以在 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 () }
所以我认为这看起来不错。它正在删除通知,并更新用户说它不再具有该通知。
经过一番挖掘,我发现不需要的插入发生在 AFIncrementalStore 的-newValueForRelationship
. 因此,出于某种原因,已删除的对象通过用户的关系返回。
如何确保已删除的对象保持删除状态并且newValueForRelationship
不尝试重新插入?