Ios CoreData阻止删除

Ios CoreData阻止删除,ios,objective-c,macos,core-data,Ios,Objective C,Macos,Core Data,我写过,但它是三年前发布的。所以我想谈谈这个话题 我有一些有永久记录的实体。还有一些没有它们的实体。 接口,仅管理这些实体的一个。 当我删除记录时,我不知道实体是否有永久记录。 我想在数据库中的表上触发一些东西 我在ManagedObject的类中尝试重载validateForDelete:。当记录是永久性的时,我返回NO。 TableView绑定到ArrayController,当我按下按钮时,会调用ArrayController的方法remove:。我的记录也消失了。之后,我尝试将结果保存到

我写过,但它是三年前发布的。所以我想谈谈这个话题

我有一些有永久记录的实体。还有一些没有它们的实体。 接口,仅管理这些实体的一个。 当我删除记录时,我不知道实体是否有永久记录。 我想在数据库中的表上触发一些东西

我在ManagedObject的类中尝试重载validateForDelete:。当记录是永久性的时,我返回NO。 TableView绑定到ArrayController,当我按下按钮时,会调用ArrayController的方法remove:。我的记录也消失了。之后,我尝试将结果保存到持久性存储,并从validateForDelete中看到我的日志消息:您不能删除,但没有错误或异常。 我尝试调用fetch:和rearangeObjects:,但记录不可见。 重新启动应用程序后,我的记录再次出现。 我知道它标记了什么,如何被删除,以及返回它的一种方法——调用回滚。但如何理解保存结果时出现的错误


实现这一点的正确方法是什么?

感谢Mundi给出了有趣的答案,但之前你们还并没有读过我的问题。我读过罗布·凯尼格的悲伤故事,但我不喜欢这样。我不想控制ArrayController的级别。请准确阅读我想要的。现在我在ArrayController级别上完成了。NSManagedObject*selectedObject=[[arrayController selectedObject]对象索引:0];如果[selectedObject RespondToSelector:@selectorpersistent]&&&[selectedObject valueForKey:@persistent]isEqualTo:@1]{NSLog@This是基类型!!!!!;}