我有一个 NSFetchedResultsController 绑定到我的主要托管对象上下文。它负责在我的主视图中保存表格视图的数据。
我有一个在后台线程上运行的 NSOperation,它刷新/删除获取的结果控制器正在跟踪的托管对象。我在 nsoperation 中创建了一个子上下文(私有并发类型 / 父级 = 主托管对象上下文)并插入/删除对象。完成后,它会保存其上下文以及父上下文。
有趣且令人沮丧的是,这在 iOS 6 中运行良好。当我插入或删除对象时,我获取的结果控制器会收到更改通知,并且一切都按预期工作。但是,在 iOS 5 上,除了删除之外,一切正常。获取的结果控制器不会收到删除通知。但是...如果我手动刷新获取的结果控制器(使其为零并重新获取相同的谓词),那么它将显示预期的结果。
此外,当我在主上下文中注册更改/保存通知时,我可以看到用户信息字典包含我已删除的对象......即使在 iOS 5 中!
我认为可能存在的一个问题,但我认为不成立,因为我已经删除了这些因素,即这个对象与另一个对象存在多对一关系。我正在删除/插入的对象是“员工”,它与“部门”有关系。员工设置为无效,部门设置为级联。
正如我所说,这在 iOS6 中运行良好,但在 iOS5 中则不行。
任何提示都会非常有帮助。