这是来自有关 SwiftUI App 协议的 Apple 文档:
@main
struct Mail: App {
@StateObject private var model = MailModel()
var body: some Scene {
WindowGroup {
MailViewer()
.environmentObject(model) // Passed through the environment.
}
Settings {
SettingsView(model: model) // Passed as an observed object.
}
}
}
Run Code Online (Sandbox Code Playgroud)
为什么在这种情况下我们需要使用@StateObject propertyWrapper?为什么普通财产还不够?
我怀疑“App”结构是一个配置对象,就像 SwiftUI 中的视图一样?并且我们不能指望该结构在主体被读取后仍然存在?正确的?
根据苹果公司的@StateObject保证,model
@StateObject private var model = MailModel()
Run Code Online (Sandbox Code Playgroud)
只会被创建一次。这就是所有的区别@ObservedObject。因此,如果这对您来说并不重要(或情况并非如此)并且您不需要在该级别观察它,那么您可以使用常规属性声明。
| 归档时间: |
|
| 查看次数: |
1501 次 |
| 最近记录: |