SwiftUIでAppStorageを使ってUserDefaultの値を監視する


SwiftUIでAppStorageを使ってUserDefaultの値を監視する方法です。 UserDefaultが変更されると画面が再描画されます。

AppStorage

import SwiftUI
struct ContentView: View {
@AppStorage("FAVORITE_POKEMON_NAME") var favoritePokemonName: String = ""
var body: some View {
VStack(spacing: 16) {
Text("Your favorite pokemon is, \(favoritePokemonName)")
Button("Snorlax is my mavorite pokemon.") {
favoritePokemonName = "Snorlax"
}
Button("Snorlax is my mavorite pokemon.") {
UserDefaults.standard.set("Slowpoke", forKey: "FAVORITE_POKEMON_NAME")
}
}
}
}