gpt4 book ai didi

swift - 核心数据对多关系导致获取的结果 Controller 崩溃

转载 作者:行者123 更新时间:2023-11-30 14:12:11 27 4
gpt4 key购买 nike

我有一个问题模型对象,它与对该问题的尝试有很多关系。

我正在使用获取结果 Controller 来列出问题。当我点击表格 View 中的问题时,它会加载包含该问题的详细 View 。

提交答案后,我想将另一次尝试附加到问题对象,以便我有尝试的历史记录。

这就是事情变得奇怪的地方。提交答案时屏幕上没有表格 View ,但目前我定义了尝试和问题之间的关系(即 attempt.question = currentQuestion),它会导致底层获取结果 Controller 崩溃。

它似乎调用了 frc 委托(delegate)方法 controller:didChangeContent:atIndexPath:forChangeType:newIndexPath: 两次,第一次用于更新(这是有道理的,因为问题对象已更改),但是第二个用于插入(这没有意义,因为没有删除或插入问题对象)。

获取结果 Controller 的获取请求仅查询问题对象,并且对该问题的尝试不感兴趣。

无论尝试是有序还是无序的多对多关系,都会发生这种情况,并且仅在设备上,而不是在模拟器上。

如果您能帮助我弄清楚为什么会发生这种情况,我将不胜感激。

最佳答案

感谢 Martin R,他给我指出了 this solution .

出于某种原因,即使在我的情况下它是一个 .Insert 事件而不是链接问题中的 .Move 事件,对委托(delegate)的调用仍然使用与 atIndexPath 参数相同的索引路径填充 newIndexPath 参数。

在允许 TableView 插入行之前对这两个参数执行不等式检查可以解决问题,因为这两个对象是相同的:

(lldb) po indexPath
▿ Optional(<NSIndexPath: 0xc000000000008016> {length = 2, path = 0 - 1})

(lldb) po newIndexPath
▿ Optional(<NSIndexPath: 0xc000000000008016> {length = 2, path = 0 - 1})

关于swift - 核心数据对多关系导致获取的结果 Controller 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31648965/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com