我正在尝试通过 AppStrorage 在 SwiftUI 中保存字符串,这到目前为止有效,但我也希望能够在另一个类中访问和加载这个保存的数据。
如果有人可以帮助我,我会很高兴。
谢谢
我正在尝试通过 AppStrorage 在 SwiftUI 中保存字符串,这到目前为止有效,但我也希望能够在另一个类中访问和加载这个保存的数据。
如果有人可以帮助我,我会很高兴。
谢谢
AppStorage
UserDefaults
在幕后使用。因此,您应该能够以这种方式直接在非 SwiftUI 上下文中访问数据。
例如,如果您使用 App Storage 存储Bool
用户是否执行了某些活动,则这两者应该相同。
struct YourView: View {
@AppStorage("UserHasOnboarded") var hasOnboarded: Bool
// View stuff
}
class SomeClass {
func checkOnboarding() {
let hasOnboarded = UserDefaults.standard.bool(forKey: "UserHasOnboarded")
// Do your stuff
}
}
当你使用@AppStorage
包装器时,你可以在UserDefaults
商店中传递使用。因此,例如,如果您想使用在应用程序组之间共享的一个,您可以在创建包装器时将其传入,然后在您的类中使用相同的组实例,您就可以访问数据您的应用程序以及您的应用程序扩展。
只需使用具有相同密钥的包装器,它只是引用相同的UserDefaults
存储
struct OneFileView: View {
@AppStorage("someKey") var someKey: String
// ... other code
}
struct AnotherFileView: View {
@AppStorage("someKey") var someKey: String
// ... other code
}