Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swiftui 添加LazyVGrid后预览崩溃_Swiftui_Cs193p_Lazyvgrid - Fatal编程技术网

Swiftui 添加LazyVGrid后预览崩溃

Swiftui 添加LazyVGrid后预览崩溃,swiftui,cs193p,lazyvgrid,Swiftui,Cs193p,Lazyvgrid,我正在学习斯坦福CS193p,在用HStack切换LazyVGrid之前,一切都很顺利 我用教授做的代码检查了我的代码,它们是一样的。但我的代码中令人困惑的部分是,当我的emojiCount=4时,预览效果很好,我可以使用LazyVGrid,但是当我将emojiCount值更改为4以上时,如5或24,它会立即崩溃 事故信息如下: 这是我的代码: 导入快捷界面 结构ContentView:View{ var emojis=[“在模拟器中运行代码,您将看到错误 致命错误:每个布局项只能出现一次 这

我正在学习斯坦福CS193p,在用HStack切换LazyVGrid之前,一切都很顺利

我用教授做的代码检查了我的代码,它们是一样的。但我的代码中令人困惑的部分是,当我的emojiCount=4时,预览效果很好,我可以使用LazyVGrid,但是当我将emojiCount值更改为4以上时,如5或24,它会立即崩溃

事故信息如下:

这是我的代码:

导入快捷界面
结构ContentView:View{

var emojis=[“在模拟器中运行代码,您将看到错误

致命错误:每个布局项只能出现一次

这就产生了表情符号。你有很多表情符号,但只有4种不同的类型。
在项目被
\.self
引用的循环中,您有责任确保项目是唯一的。

非常感谢您!是的,您的回答完美地解决了我的问题。但我还有一个问题。在我将LazyVGrid与HStack切换之前,我的代码与HStack配合得很好,代码允许我添加4个以上卡片,甚至其中一些卡片都是相同的。您能解释一下这背后的逻辑吗?
ForEach
对于唯一性是相当宽容的,如果项目只是显示在一个普通的组中,因为项目没有按字面上的方式标识。在网格视图中,项目被分配给网格项目,这要求项目是唯一的。