Persistable
提供简单类型安全的持久化值,用作应用程序中的设置。
支持类型Any
,这应该理解为,“任何可以被发送到UserDefaults.standard.set(forKey:)
的值”。
// Configuration
struct Settings {
static var darkMode = Persistent(value: false, key: "darkMode")
static var openCount = Persistent(value: 0, key: "openCount")
static var volume = Persistent(value: 1.0, key: "volume") {
didSet {
print("Volume changed to \(volume.value)")
}
}
}
// Setting
Settings.darkMode.value = true
Settings.openCount.value = Settings.openCount.value + 1
Settings.volume.resetValue()
// Getting
print(Settings.darkMode.value) // true
print(Settings.openCount.value) // 1