ForEach не может использовать ветку - PullRequest
1 голос
/ 22 марта 2020

Я использую Xcode 11.3.1 с SwiftUI.

Этот код работает правильно

struct ContentView: View {
    var body: some View {
        VStack {
            ForEach(1...5, id: \.self) { index in
                Text("\(index) of coffee.")
            }
        }
    }
}

enter image description here Но следующий код выдает ошибку.

почему?

struct ContentView: View {
    var body: some View {
        VStack {
            ForEach(1...5, id: \.self) { index in
                if index == 1 {
                    Text("Cup of coffee.")
                } else {
                    Text("\(index) cups of coffee")
                }
            }
        }
    }
}

Сообщение об ошибке:

Невозможно определить тип возврата сложного замыкания; добавить явный тип для устранения неоднозначности.

1 Ответ

1 голос
/ 22 марта 2020

Поскольку конструктор представлений ожидал один возврат одного типа, но условие не генерирует непрозрачный возврат. Чтобы решить - просто вставьте условие в группу

ForEach(1...5, id: \.self) { index in
  Group {
    if index == 1 {
        Text("Cup of coffee.")
    } else {
        Text("\(index) cups of coffee")
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...