SwiftUI ForEach-Loop 出现错误
Posted
技术标签:
【中文标题】SwiftUI ForEach-Loop 出现错误【英文标题】:SwiftUI ForEach-Loops getting errors 【发布时间】:2020-02-20 09:46:33 【问题描述】:我正在尝试在 SwiftUI 中构建一个 ForEach()-Loop 来构建 UI 元素,但我收到了以下错误消息:
无法推断复杂的闭包返回类型;添加显式类型以消除歧义
这是我的代码:
var body: some View
HStack
HStack
VStack
ForEach((1...10).reversed(), id: \.self)
Text("\($0)")
Spacer()
Spacer()
Spacer()
Spacer()
错误指向与 ForEach-Statement 的行。我尝试按照 Paul Hudson 的教程进行操作,请参阅:https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-views-in-a-loop-using-foreach
【问题讨论】:
【参考方案1】:简而言之:从ForEach
中删除Spacer()
。
ForEach
期望返回some View
类型的一个值。
您可以将Text()
和Spacer()
包装成HStack
或VStack
,但在这种情况下,您无法通过闭包语法访问数组中的每个数字($0
表示法应更改为 element in
)。
所以下一个代码可以工作:
var body: some View
HStack
HStack
VStack
ForEach((1...10).reversed(), id: \.self) number in
HStack
Text("\(number)")
Spacer()
Spacer()
Spacer()
Spacer()
【讨论】:
这解决了我的问题,谢谢。我刚开始使用 SwiftUI,有些错误很奇怪。以上是关于SwiftUI ForEach-Loop 出现错误的主要内容,如果未能解决你的问题,请参考以下文章