SwiftUI中@AppStorage修饰变量应用重启时的取值规则问询
@AppStorage读取逻辑说明
应用重启时,pullData会优先读取UserDefaults中已存储的对应值,你代码中写的= true是默认兜底值,仅当UserDefaults中不存在pullData对应的存储记录时才会生效。
具体分两种场景:
- 若用户从未修改过
pullData的值,UserDefaults中没有生成对应存储记录,此时变量会取你设置的默认值true - 若用户使用过程中修改过
pullData的值,修改结果会自动同步到UserDefaults持久化存储,后续应用重启时会直接读取该存储值,不会被重置为初始的true
补充说明:
@AppStorage本质是SwiftUI对UserDefaults的封装,所有对@AppStorage修饰变量的修改都会自动同步到UserDefaults,不需要手动调用存储方法。你可以通过UserDefaults.standard.bool(forKey: "pullData")随时查看该键的实际存储值,验证读取逻辑。
内容的提问来源于stack exchange,提问作者mdav132
相关产品推荐
相关产品推荐

