【发布时间】:2015-07-27 09:04:46
【问题描述】:
我有一个问题模型对象,它与对该问题的尝试有很多关系。
我正在使用 Fetched Results Controller 列出问题。当我在表格视图中点击一个问题时,它会加载一个包含该问题的详细视图。
提交答案后,我想将另一次尝试附加到问题对象上,这样我就有了尝试的历史记录。
这就是事情变得奇怪的地方。提交答案时屏幕上没有表格视图,但在我定义尝试和问题之间的关系(即attempt.question = currentQuestion)时,它会导致底层获取结果控制器崩溃。
似乎调用了 frc 委托方法 controller:didChangeContent:atIndexPath:forChangeType:newIndexPath: 两次,第一次用于更新(这是有道理的,因为问题对象已更改),但第二次用于插入(这没有意义,因为没有问题对象被删除或插入)。
获取结果控制器的获取请求仅查询问题对象,并且对该问题的尝试不感兴趣。
无论尝试是有序的还是无序的多对多关系,都会发生这种情况,并且只在设备上而不是在模拟器上。
如果能帮助我弄清楚为什么会发生这种情况,我将不胜感激。
【问题讨论】:
-
哪个 Xcode 版本,哪个 iOS、模拟器或设备?也许和这个问题相同:stackoverflow.com/questions/31383760/… ?
-
Xcode 7. 是的,这是同样的错误(除了在我的情况下它调用
.Insert,而不是.Move),但修复工作。非常感谢。 -
但对于
.Insert只有newIndexPath有效。同样的检查if indexPath != newIndexPath真的能解决问题吗?也许您可以使用事件日志以及“旧”和“新”索引路径来更新您的问题。
标签: swift core-data nsfetchedresultscontroller