| 1 |
// |
|
| 2 |
// UserDefault.swift |
|
| 3 |
// USB Meter |
|
| 4 |
// |
|
| 5 |
// Created by Bogdan Timofte on 03/03/2020. |
|
| 6 |
// Copyright © 2020 Bogdan Timofte. All rights reserved. |
|
| 7 |
// |
|
| 8 | ||
| 9 |
import Foundation |
|
| 10 | ||
| 11 |
@propertyWrapper struct UserDefault<T> {
|
|
| 12 |
let key: String |
|
| 13 |
let defaultValue: T |
|
| 14 | ||
| 15 |
var wrappedValue: T {
|
|
| 16 |
get {
|
|
| 17 |
return UserDefaults.standard.object(forKey: key) as? T ?? defaultValue |
|
| 18 |
} |
|
| 19 |
set {
|
|
| 20 |
UserDefaults.standard.set(newValue, forKey: key) |
|
| 21 |
} |
|
| 22 |
} |
|
| 23 | ||
| 24 |
// static func getValue(forKey: String) -> T? {
|
|
| 25 |
// return UserDefaults.standard.object(forKey: forKey) as? T |
|
| 26 |
// } |
|
| 27 |
} |
|
| 28 | ||
| 29 |
// Asta cel mai probabil face figuri pentru ca nu pare sa aiba observer |
|
| 30 |
@propertyWrapper struct UserRuntime<T> {
|
|
| 31 | ||
| 32 |
var value: T |
|
| 33 | ||
| 34 |
var wrappedValue: T {
|
|
| 35 |
get {
|
|
| 36 |
return value |
|
| 37 |
} |
|
| 38 |
set {
|
|
| 39 |
value = newValue |
|
| 40 |
} |
|
| 41 |
} |
|
| 42 | ||
| 43 |
} |