已删除的具有关系的对象由AFIncremntalStore重新插入



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

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

在执行保存更改请求中,如果我记录更改请求,我会得到:

<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不会尝试重新插入它?

嗯,这就像设置 shouldFetchRemoteValuesForRelationship 返回 false 一样简单。 不能声称我明白为什么,这可能会回来咬我,但现在,它解决了这个问题。

相关内容

  • 没有找到相关文章

最新更新