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

时间:2014-01-18 21:56:30

标签: objective-c core-data afincrementalstore

在我的数据模型中,我有用户和通知,其中一个用户可以有许多通知。在通知中,用户关系的删除规则设置为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不会尝试重新插入?

1 个答案:

答案 0 :(得分:1)

嗯,就像设置shouldFetchRemoteValuesForRelationship返回false一样简单。不能声称我理解为什么,这可能会让我感到困惑,但就目前而言,它解决了这个问题。