2 Star 22 Fork 10

小弟调调/swiftui-example

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
README.md 1.41 KB
一键复制 编辑 原始数据 按行查看 历史

什么是 @AppStorage 属性包装器?

SwiftUI 具有专用的属性包装程序,可用于从 UserDefaults 中读取值,当值更改时,该程序将自动重新调用视图的 body 属性。 也就是说,此包装器有效地监视 UserDefaults 中的键,并且如果该键更改,将刷新您的UI。

例如,这将监视 UserDefaults 中的 username 键,该键将在按下按钮时设置:

struct ContentView: View {
    @AppStorage("username") var username: String = "Anonymous"

    var body: some View {
        VStack {
            Text("Welcome, \(username)!")

            Button("Log in") {
                username = "@twostraws"
            }
        }
    }
}

在上面更改 username 将导致新字符串立即写入 UserDefaults,同时还会更新视图。 如果我们使用了较旧的方法,那也将是正确的:

UserDefaults.standard.set("@twostraws", forKey: "username")

@AppStorage 默认情况下将监视 UserDefaults.standard,但是如果您愿意,也可以使其监视特定的应用程序组,如下所示:

@AppStorage("username", store: UserDefaults(suiteName: "group.com.hackingwithswift.unwrap")) var username: String = "Anonymous"

重要:@AppStorage 将您的数据写入 UserDefaults,这不是安全存储。 因此,您不应使用 @AppStorage 保存任何个人数据,因为它相对容易提取。

Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Swift
1
https://gitee.com/jaywcjlove/swiftui-example.git
git@gitee.com:jaywcjlove/swiftui-example.git
jaywcjlove
swiftui-example
swiftui-example
main

搜索帮助