首页 > 解决方案 > 在没有观察者通知的情况下写入核心数据上下文

问题描述

我有一个NSManagedObjectContextDidSave观察者在保存记录后直接修改它。正如想象的那样,我遇到了一个无限循环问题,修改新保存的记录将触发另一个通知给观察者。

我的想法是跟踪核心数据记录的 ID,当它回来时,我只是忽略它并从数组中删除 ID。这会起作用,但我担心碰撞,这似乎不太可能发生,但仍有可能发生碰撞,这会导致碰撞的记录错过观察者的修改。

这里的常识解决方案是什么?

标签: ioscore-datansnotificationcenternsmanagedobjectcontext

解决方案


简单的答案似乎是使用NSManagedObjectContextWillSave而不是NSManagedObjectContextDidSave,这样您就可以在保存之前进行更改,从而避免循环。除非有一些你没有提到的令人信服的理由,否则我会这样做。


推荐阅读