SwiftUIでのUserDefaults
アプリを終了した後も変数の値を保存できる
似た役割のものにAppStorageがあり、対応できる変数の型などの違いがある。
UserDefaultsはAppStorageよりもコード量が増えるが、配列を扱えることが一つの利点
EnvironmentObjectと組み合わせると使いやすい
データを保持するカスタムクラスを用意して、UserDefaultsへのアクセス処理をまとめるとよい
code:Swift
class UserProfile: ObservableObject {
@Published var username: String {
didSet {
UserDefaults.standard.set(username, forKey: "username_key")
}
}
init() {
username = UserDefaults.standard.string(forKey: "username_key") ?? ""
}
}