我曾经使用以下语句将重要的应用程序数据(如登录凭据)保存到 UserDefaults 中:
UserDefaults.standard.set("sample@email.com", forKey: "emailAddress")
Run Code Online (Sandbox Code Playgroud)
现在,我知道 SwiftUI 引入了新的属性包装器,称为:
@AppStorage
谁能解释一下新功能的工作原理?
@AppStorage可以在SwiftUI的Environment中使用吗?如果可以,你会怎么做?
我知道您可以使用 @Bindings 将 @AppStorage 的值从一个视图发送到另一个视图,我想知道是否可以将其放入环境中。我没有关于何时适用的实际示例,但我想知道这是否可能。
这足够疯狂吗?我认为您只会存储该值,而不会存储在 UserDefault 中。
struct RootView: View {
@AppStorage("userPreferredDisplayMode") private var userPreferredDisplayMode: String = "automatic"
@Environment(\.userPreferredDisplayMode) private var envUserPreferredDisplayMode: String
var body: some View {
Text(title)
.environment(\.userPreferredDisplayMode, envUserPreferredDisplayMode)
}
}
Run Code Online (Sandbox Code Playgroud)