我有一个程序,我正在使用CoreData来管理永久和临时数据。
在一个实例中,当用户按下取消时,我通过删除对象来中止添加一些数据。但是当我点击下一个视图时,数据仍然存在,附加到它的父核心数据对象。
[self.bar removeFoosObject:self.foo];//Why do I need this line?
[self.foo.managedObjectContext deleteObject:self.foo];
我最终通过手动从父对象中删除子对象来解决这个问题 - 但这不是核心数据自动处理的东西吗?我为什么需要第一行?
我运行了一些测试代码,并且Foo肯定被删除了 - 它正在修复的代码让我检查,并且它的MOC已设置为nil。记忆存在,但它应该非常非常死...
答案 0 :(得分:1)
您必须手动执行此操作,因为您的删除规则设置错误。请查看以下Apple文档中的关系删除规则。
或者也可能是在父对象和子对象之间没有将关系设置为可选。
在删除对象后,您应该保存数据库以使其同步。