SwiftUI 基础之@ObservedObject 有什么用(含demo代码2020)
@ObservedObject 简介
很遗憾,也许这个属性装饰器实在太新了,apple官方还没有给具体定义
大白话:观测对象修饰器,被ObservedObject修饰的变量只要有变化就会自动更新
@State 和 @ObservedObject 有什么区别
@State用于View内部,@ObservedObject用于外部。例如数据存储在数据库中,我们就需要用@ObservedObject了。
代码
import SwiftUI
import Combine
class BookingStore: ObservableObject {
var objectWillChange = PassthroughSubject<Void, Never>()
var bookingName: String = "" { didSet { updateUI() }
}
var seats: Int = 1 { didSet { updateUI() }
}
func updateUI() { objectWillChange.send()
}
}
struct ContentView: View {
@ObservedObject var model = BookingStore()
var body: some View {
VStack {
TextField("Your Name",text: $model.bookingName)
Stepper("Seats : \(model.seats)",
value: $model.seats,
in:1...5)
}
}
}
更多SwiftUI教程和代码关注专栏
- 请关注我的专栏 SwiftUI教程与源码