3

在我的数据模型中,我有用户和通知,其中一个用户可以有多个通知。在 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不尝试重新插入?

4

1 回答 1

1

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

于 2014-01-28T20:04:29.870 回答