Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @propertyWrapper
- public struct UserDefault<T>: UserDefaultSpec {
- let key: String
- let defaultValue: T
- public init(_ key: String, defaultValue: T) {
- self.key = key
- self.defaultValue = defaultValue
- }
- public var value: T {
- get {
- UserDefaults.standard[key] ?? defaultValue
- }
- set {
- UserDefaults.standard[key] = newValue
- }
- }
- }
- // GRRR why don't you work?!
- public extension UserDefault where T: RawRepresentable {
- var value: T {
- get {
- if let rawValue = UserDefaults.standard.value(forKey: key) as? T.RawValue {
- return T(rawValue: rawValue)!
- }
- return defaultValue
- }
- set {
- UserDefaults.standard.set(newValue.rawValue, forKey: key)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement