我已经找到了解决方案,但仍然想了解问题是什么,以便能够将其转移到类似的问题上。
以这个示例代码为例:
import SwiftUI
struct ContentView: View {
private var days = Array(1...31)
@State private var selectedDay = 1
private var months = [ "January", "February", "March", "April", "May", "June" ]
@State private var selectedMonth = "January"
var body: some View {
NavigationView {
Form {
VStack {
Picker("Select day", selection: $selectedDay) {
ForEach(self.days, id: \.self) { day in
Text(String(day))
}
}
Picker("Select month", selection: $selectedMonth) {
ForEach(self.months, id: \.self) { month in
Text(month)
}
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
如果您随后点击任何选择器,应用程序将在几秒钟后崩溃,并显示Thread 1: EXC_BAD_ACCESS (code=2, address=0x7ffeed371fd8)
.
解决方案是删除 VStack。
但是我仍然想了解如果有 VStack,为什么应用程序会崩溃?
添加 VStack 有什么问题?