A swifter UserDefaults
- Xcode 11(for using static and class subscripts)
- Swift5.0
extension Defaults.Keys { // It is not necessary, you can put these enum wherever you like
enum Detail: String {
case name
case sign
case isLogin
}
}
Defaults[Defaults.Keys.Detail.isLogin] = true
Including Bool, String, Date
let bool = Defaults[bool: Defaults.Keys.Detail.isLogin] // default is false
or
let bool = Defaults[Defaults.Keys.Detail.isLogin] ?? false
let arr = Defaults[array: Defaults.Keys.Detail.name] as? [String]
Defaults[array: Defaults.Keys.Detail.name].append("Joshua")
extension Defaults.Keys {
static let currentUser = Defaults.CustomKey(User.current.name, prefix: "User")
}
let sign = Defaults[dic: Defaults.Keys.currentUser][Defaults.Keys.Detail.sign, default:""]
or
let sign = Defaults[dic: Defaults.Keys.currentUser][Defaults.Keys.Detail.sign] ?? ""
I add a Dictionary Extention to allow subscript String Enum Type in [String: Any]
Defaults[dic: Defaults.Keys.currentUser][Defaults.Keys.Detail.sign] = "I am batman"
Defaults[dic: Defaults.Keys.currentUser][Defaults.Keys.Detail.isLogin] = true