@Published

@Published是SwiftUI中用于标记属性的一个属性包装器,通常与ObservableObject协议一起使用。它使得属性的变化能够自动通知观察者,从而更新用户界面。

具体用法示例:

import SwiftUI
import Combine

class MyModel: ObservableObject {
    @Published var count: Int = 0
}

struct ContentView: View {
    @ObservedObject var model = MyModel()
    
    var body: some View {
        VStack {
            Text("Count: \(model.count)")
                .font(.largeTitle)
            Button("Increment") {
                model.count += 1
            }
        }
        .padding()
    }
}

工作原理:

  1. 属性声明@Published修饰符用于MyModel类中的count属性。这意味着每当count的值发生变化时,SwiftUI会自动发出通知。

  2. 视图观察ContentView通过@ObservedObject观察MyModel实例。当model.count改变时,SwiftUI会自动重新渲染视图。

其他注意事项:

  • 可以在@Published属性上添加一些逻辑,比如计算属性,来处理与UI更新相关的复杂情况。

  • 适合用来管理简单的状态数据,比如计数器、文本输入等。

如果你还有其他具体问题或想了解的内容,请告诉我!

Last updated