我正在使用 Core Data 的一个非常基本的实现来在我的应用程序中存储一些对象。该代码几乎是 Xcode 创建的样板代码,因为模型非常简单(甚至没有任何关系,只是独立的托管对象)。
在 iOS7 中一切正常,但在 iOS 6 中,当删除表视图中的对象时,iOS 会删除行,然后 fetchedResultsController 立即执行 NSFetchedResultsChangeInsert 并将删除的对象添加回表视图。
如果我离开表格视图然后返回到它,行已经消失,确认它们已被删除,但为什么控制器在 iOS 6 中调用 NSFetchedResultsChangeInsert?我可以确认这在 iOS 7 中根本没有被调用。
我在 Xcode 中创建了一个空白应用程序来将代码与我的代码进行比较,以确保我没有搞砸并且代码与我看到的相同。谁能解释这个问题?我以前没有使用过 Core Data,所以我可能会遗漏一些明显的东西。
我的代码中唯一的一次区别是,当我删除一个对象时,我还会删除文档目录中的一个 jpg(如果存在)。