0

我正在使用 Core Data 的一个非常基本的实现来在我的应用程序中存储一些对象。该代码几乎是 Xcode 创建的样板代码,因为模型非常简单(甚至没有任何关系,只是独立的托管对象)。

在 iOS7 中一切正常,但在 iOS 6 中,当删除表视图中的对象时,iOS 会删除行,然后 fetchedResultsController 立即执行 NSFetchedResultsChangeInsert 并将删除的对象添加回表视图。

如果我离开表格视图然后返回到它,行已经消失,确认它们已被删除,但为什么控制器在 iOS 6 中调用 NSFetchedResultsChangeInsert?我可以确认这在 iOS 7 中根本没有被调用。

我在 Xcode 中创建了一个空白应用程序来将代码与我的代码进行比较,以确保我没有搞砸并且代码与我看到的相同。谁能解释这个问题?我以前没有使用过 Core Data,所以我可能会遗漏一些明显的东西。

我的代码中唯一的一次区别是,当我删除一个对象时,我还会删除文档目录中的一个 jpg(如果存在)。

4

1 回答 1

0

输入这篇文章后,我正在考虑如何删除对象中引用的图像。我在托管对象中有一个方法来执行此操作,在删除它进行测试后,似乎由于对象仍在执行此操作,因此无法立即删除对象,并且获取的结果控制器正在将对象添加回表视图. 我添加了一种方法来删除 TableView 控制器中其他地方的引用图像,问题已解决。无论如何发布这个,以防其他人有类似的问题,也因为有人可能有一些关于更好的方法来处理这个问题的反馈。

于 2013-10-19T23:27:14.733 回答