使用 @Observable 宏简化模型
使用
@Observable宏简化模型,让数据管理变得前所未有的简单!🚀 你不再需要手动编写ObservableObject协议和@Published属性,只需一个宏,就能搞定一切!
告别繁琐:拥抱 @Observable
以前,我们需要这样定义可观察对象:
swift
class MyModel: ObservableObject {
@Published var name: String = ""
@Published var age: Int = 0
}现在,有了 @Observable,代码变得简洁多了:
swift
import Observation
@Observable
class MyModel {
var name: String = ""
var age: Int = 0
}是不是清爽了很多?🎉 @Observable 宏会自动为你处理所有必要的设置,让你可以专注于业务逻辑。
@Observable 的优势
- 代码更简洁:大幅减少样板代码,提高开发效率。
- 易于维护:代码更易读,方便维护和调试。
- 性能优化:Observation 框架底层进行了优化,性能更佳。
如何使用 @Observable
- 导入 Observation 框架:
import Observation - 在类前添加
@Observable宏:@Observable class MyModel { ... } - 直接使用属性:在 SwiftUI 视图中,像普通属性一样使用即可。
例如:
swift
import SwiftUI
import Observation
@Observable
class MyModel {
var name: String = "张三"
var age: Int = 20
}
struct ContentView: View {
@State var model = MyModel()
var body: some View {
VStack {
Text("姓名:\(model.name)")
Text("年龄:\(model.age)")
TextField("姓名", text: $model.name)
Stepper("年龄", value: $model.age, in: 0...100)
}
.padding()
}
}在这个例子中,ContentView 通过 @State 创建了一个 MyModel 的实例。当 name 或 age 发生变化时,视图会自动更新。是不是很方便?😎
注意事项
@Observable只能用于类。- 确保导入了
Observation框架。 - 在 SwiftUI 视图中使用
@State或@ObservedObject来持有@Observable对象。
使用 @Observable 宏,可以极大地简化你的 SwiftUI 数据模型,让你更专注于构建出色的用户界面。快来试试吧!👍