Я пытаюсь создать приложение для iOS, используя SwiftUI. Мои данные хранятся в базе данных Google Firebase в реальном времени. Я извлекаю свои данные в ObservableObject, чтобы пользовательский интерфейс мог загружаться динамически, если данные добавляются или удаляются. Но по какой-то причине я всегда получаю ошибку «Тип выражения неоднозначен без дополнительного контекста» для Text ().
Я уже пытался удалить операторы if и Text (), но тогда яЯ получаю ошибки в других местах. Например, мне также нужно написать
HStack{ ... }.padding(.leading, CGFloat(20))
. Если я не приведу 20 к CGFloat, я получаю ошибку "CGFloat не конвертируется в CGFloat?". Я знаю, что сообщения об ошибках SwiftUI пока не так хороши, так как почти 90% ошибок кода приводят к некоторым неоднозначным ошибкам бла. Но здесь я действительно не знаю, откуда эти ошибки.
import SwiftUI
struct IngredientsTab: View {
@ObservedObject var ingredientsVM: IngredientViewModel = IngredientViewModel()
var body: some View {
NavigationView {
List {
ForEach(ingredientsVM.ingredients, id: \.self){ (ingredient) in
NavigationLink(destination: IngredientDetailView(ingredient: ingredient)){
VStack {
HStack {
Text(ingredient.name)
Spacer()
if (Type.NONALC == ingredient.type) {
self.modifier(LabelViewModifier(label: "Non-alcoholic", backgroundColor: .green))
} else {
self.modifier(LabelViewModifier(label: "Alcoholic", backgroundColor: .red))
}
}
if (ingredient.pieceGood) {
HStack {
Image(systemName: "checkmark.circle.fill")
.foregroundColor(Color.green)
Text("Piece good") // Here I'm getting the error
Spacer()
}
.padding(.leading, 20)
}
}
}
}
}
}
}
}
Так что, похоже, это как-то связано с SwiftUI (поскольку он, очевидно, еще не работает идеально), но также с Cocoapods / Firebase. В другом проекте у меня похожий подход, но без использования каких-либо модулей, и он просто отлично работает.