【发布时间】:2020-01-19 21:56:13
【问题描述】:
ForEach(self.thingobserved.things){ i in
If self.data == i.something {
Count+= 1
}
}
这是我的代码,每次我输入此代码时它都会告诉我
“无法推断出复杂的闭包返回类型; 添加显式类型以消除歧义”
【问题讨论】:
-
你可能会混淆 SwiftUI 的 ForEach(一种视图),就像 Collection 的 forEach 一样。您不希望更改 ForEach 视图主体中的值,因为每次重新渲染视图层次结构时都会运行该值。您是想在这里创建一些视图,还是只是想增加集合中的数字?
-
它并不是那样工作的。
ForEach不像for循环。它是一个在项目集合和显示该项目所需的视图内容之间建立关联的函数。当视图刷新时,没有什么说ForEach循环必须遍历所有元素,就像for循环一样。相反,它可以变得更聪明,只为self.thingsobserved的那些自上次评估以来发生变化的成员重绘(重新运行主体)。 -
是的,我只是想增加这个数字,我不想创建任何视图,但我想知道如何解决我遇到的这个错误