This commit is contained in:
Ivan Vorobei
2019-06-26 22:12:35 +03:00
parent 2477f5d038
commit 48001a8e9a
1363 changed files with 6 additions and 3 deletions

View File

@@ -0,0 +1,28 @@
//
// UserDefaultsValue.swift
// SwiftUITodo
//
// Created by kemchenj on 2019/6/5.
// Copyright © 2019 Suyeol Jeon. All rights reserved.
//
import Foundation
@propertyDelegate
struct UserDefaultValue<Value: Codable> {
let key: String
let defaultValue: Value
var value: Value {
get {
let data = UserDefaults.standard.data(forKey: key)
let value = data.flatMap { try? JSONDecoder().decode(Value.self, from: $0) }
return value ?? defaultValue
}
set {
let data = try? JSONEncoder().encode(newValue)
UserDefaults.standard.set(data, forKey: key)
}
}
}