У меня есть «если» внутри ForEach в iOS SwiftUI (Xcode версии 11.6), и он работает правильно.
struct ContentView: View {
var body: some View {
List {
ForEach(0 ..< 10) {(i: Int) in
if i % 2 == 0 {
Text(String(i))
}
}
}
}
}
Теперь я хотел бы сделать то же самое, но с массив строк вместо полуоткрытого диапазона Ints.
struct ContentView: View {
let states: [String] = [
"Alabama",
"Alaska",
"Arizona",
"Arkansas",
"California"
];
var body: some View {
List {
ForEach(states, id: \.self) {(state: String) in
if state.hasPrefix("Al") {
Text(state)
}
}
}
}
}
Сообщение об ошибке, которое я получаю из этого ForEach:
Type '()' cannot conform to 'View'; only struct/enum/class types can conform to protocols
Что пошло не так? Я озадачен, потому что в учебнике Apple по SwiftUI есть «если» внутри ForEach в разделе 3, шаг 1 https://developer.apple.com/tutorials/swiftui/handling-user-input Заранее спасибо.