У меня есть следующий сценарий.
У меня есть AppState, который состоит из объекта типа Foo. В Foo есть переменная счетчика, и я хочу вызвать objectWillChange при обновлении значения счетчика, чтобы я мог обновить пользовательский интерфейс.
В настоящее время ничего не происходит. Функция приращения вызывается, но пользовательский интерфейс никогда не обновляется.
import Foundation
import Combine
class Foo: ObservableObject {
@Published var counter: Int = 999
func increment() {
counter += 1 // how to get notified when counter value changes
}
}
class AppState: ObservableObject {
@Published var foo: Foo = Foo()
}
// usage in Scene Delegate as Environment Object
let appState = AppState()
// Use a UIHostingController as window root view controller.
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: accountSummaryScreen.environmentObject(appState))
UPDATE
class Foo: ObservableObject {
@Published var counter: Int = 999 {
didSet {
objectWillChange.send()
}
}
func increment() {
counter += 1 // how to get notified when counter value changes
}
}