Xcode操场上的SwiftUI和foreach问题
我试图在 SwiftUI 中执行一个简单的代码,但它显示错误:执行被中断,原因:信号 SIGABRT。这是一个代码`
struct ContentView: View {
let data = (1...100).map { "Item ($0)" }
let columns = [
GridItem(.adaptive(minimum: 80))
]
var body: some View {
ScrollView {
LazyVGrid(columns: columns, spacing: 20) {
ForEach(data, id: .self) { item in
Text(item)
}
}
.padding(.horizontal)
}
.frame(maxHeight: 300)
}
}
回答
在使用 ForEach 时,Playground(至少是这个版本)似乎存在一个错误。我有同样的问题,您可以在 CrashLogs 中找到更多详细信息console
使用 ForEach检查崩溃的操场
变通方法
- 将 ContentView 移动到 Playground Sources 中的单独文件
- 不要忘记公共修饰符
public struct ContentView: View {
let data = (1...100).map { "Item ($0)" }
let columns = [
GridItem(.adaptive(minimum: 80))
]
public init() {}
public var body: some View {
ScrollView {
LazyVGrid(columns: columns, spacing: 20) {
ForEach(data, id: .self) { item in
Text(item)
}
}
.padding(.horizontal)
}
.frame(maxHeight: 300)
}
}