SwiftUI 错误:"列表无法访问单元格内容,返回空单元格。"

4

我在对我的应用程序代码进行了巨大的更改后看到了这个错误。我想知道是否有人知道它的含义,以及是否可以忽略它。

无法访问单元格内容列表,返回空单元格。- SwiftUI/UICollectionViewListCoordinator.swift:296 - 请提交错误报告。

当我从NavigationStack弹出包含List的视图时,它就会发生。我在我的代码中经常使用List。我通过逐个将每个List更改为VStack并查看错误消息是否消失来确定导致错误的确切List。然而,我真的看不出我的代码中可能导致这种错误的任何问题。此外,我无法使用简单的示例重现错误(尽管该错误可以在我的应用程序中始终重现)。

我在这里提问是因为当错误出现时,我的应用程序崩溃了。后来我以某种方式修复了崩溃问题,但上述错误消息仍然存在。因此,我怀疑崩溃和上述错误消息是两个单独的问题,但我不确定。搜索错误消息只得到了很少的结果。所以我想知道这是只有我遇到的问题还是普遍存在的问题?谢谢。


更新:忘了提到,我怀疑引起问题的视图通常都能正常工作。只有在从导航栈中弹出视图时才会生成错误。在@ahmed-maher列出的三个可能原因中,我认为第1和第2项在我的情况下不太可能,否则错误消息应该会首先显示出来。虽然我不确定第3项,但我认为单元格的内容并不复杂(它只包含一些文本,由HStackVStack组织)。


我的猜测是没有正确使用List/ForEach的“id”。 - malhal
1个回答

3
这是由于SwiftUI的一个bug导致的,List的section header存在问题。我知道当section header在程序中被改变时(特别是当其布局也被改变时),它非常容易出现bug,但没想到它可能会导致随机崩溃。当我用静态内容替换header后,崩溃完全消失了,而且“空单元格”错误消息几乎不再出现(虽然仍然偶尔发生)。今天就到此为止吧,以后考虑用LazyVStack替换List

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接