我已经写过this question但它是在3年前发布的。所以我想谈谈这个话题。
我有一些拥有永久记录的实体。还有一些没有它们的实体。 用于仅管理这些实体的接口的接口。 当我删除记录时,我不知道实体是否有永久记录。 我想要在数据库中触发表格。
我在我的ManagedObject类中尝试重载 validateForDelete:。当记录是永久性的时候我返回NO。 TableView绑定到ArrayController,当我按下按钮NSArrayController的方法 remove:被调用。而我的记录也随之消失。之后,我尝试将结果保存到持久存储,并从 validateForDelete看到我的日志消息:"您不能删除",但没有错误或异常。 我尝试调用 fetch:和 rearangeObjects:,但记录不可见。 重启后App我的记录再次出现。 我明白它是什么标记删除和返回它的一种方式 - 调用回滚。但是如何在保存结果时理解我有什么错误?
实现这一目标的正确方法是什么?