我正在尝试在SwiftUI中构建一个ForEach()循环以构建UI元素,但是却收到了以下错误消息:
无法推断复杂的闭包返回类型;添加显式类型以消除歧义
这是我的代码:
var body: some View {
HStack {
HStack {
VStack {
ForEach((1...10).reversed(), id: \.self) {
Text("\($0)")
Spacer()
}
Spacer()
}
Spacer()
}
Spacer()
}
}
错误指向带有ForEach语句的行。我尝试遵循Paul Hudson的教程,请参见:https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-views-in-a-loop-using-foreach
答案 0 :(得分:1)
简而言之:从Spacer()
中删除ForEach
。
ForEach
期望返回类型为some View
的一个值。
您可以将Text()
和Spacer()
包装到HStack
或VStack
中,但是在这种情况下,您无法通过闭包语法({{1 }}表示法应更改为$0
)。
因此下一个代码将起作用:
{ element in }