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 出现错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SQL 命令从我的 DataTable 对象中使用 foreach-loop 更新 C# 中的 MS Access 数据库?
为啥我的 SwiftUI JSONDecoder 会出现致命错误?
SwiftUI:尝试加载本地 JSON 数据时,Canvas 出现预览错误
Swift / SwiftUI:如何检查环境 /binding var 是不是为空字符串(.isEmpty 出现构建错误)