Как сказал @Sweeper: ваши операторы if...else
и switch...case
не равны. Основная идея: body
- это просто вычисляемая переменная протокола просмотра , и она должна возвращать что-то своего типа. Конечно, вы можете сделать это с помощью switch...case
заявлений. В вашем коде фрагмент кода содержит ошибку default
: тело не может вернуть () -> Void
, только some View
. Итак, ваш код должен выглядеть следующим образом:
struct ViewWithSwitchStatements: View {
@State var option = 0
var body: some View {
switch option {
case 1:
return AnyView(Text("Option 1"))
case 2:
return AnyView(Text("Option 2"))
default:
return AnyView(Text("Wrong option!"))
}
}
}
Однако вы не можете поместить его в VStack
или что-то еще, например if...else
операторов.