У меня странная проблема с представлением предупреждений SwiftUI. В ObservableObject я делаю несколько сетевых запросов, и в случае ошибки я покажу предупреждение. Это моя упрощенная модель:
class MyModel: ObservableObject {
let objectWillChange = ObservableObjectPublisher()
@Published var isError: Bool = false
public func network() {
Service.call() {
self.isError = true
DispatchQueue.main.async {
self.objectWillChange.send()
}
}
}
}
Service.call
- пустышка для моего сетевого запроса. Мой взгляд выглядит так:
struct MyView: View {
@ObservedObject var model: MyModel
var body: some View {
…
.alert(isPresented: self.$model.isError) {
print("Error Alert")
return Alert(title: Text("Alert"))
}
}
}
При первом вызове все работает и отображается предупреждение. Для всех дальнейших вызовов будет выполняться print("Error Alert")
и Предупреждение об ошибке появляется в консоли, но предупреждение не отображается.
Кто-нибудь знает, почему предупреждение отображается только один раз?