ObservableObject
A type of object with a publisher that emits before the object has changed.
By default an ObservableObject
will synthesize an objectWillChange
publisher that emits before any of its @Published
properties changes
class DelayedUpdater: ObservableObject {
@Published var value = 0
// or, use below to add extra functionality.
var value: Int {
willSet {
objectWillChange.send()
}
}
init() {
for i in 1...10 {
DispatchQueue.main.asyncAfter(deadline: .now() + Double(i)) {
self.value += 1
}
}
}
}
struct ContentView: View {
@ObservedObject var updater = DelayedUpdater()
var body: some View {
Text("value: \(updater.value)")
// value: 0
// value: 1
// value: 2
// ..
}
}
Last updated
Was this helpful?