UserDefaultsExtension.swift 858 B

12345678910111213141516171819202122232425262728293031
  1. //
  2. // UserDefaultsExtension.swift
  3. // FreeAPS
  4. //
  5. // Created by Marvin Polscheit on 26.05.24.
  6. //
  7. import Foundation
  8. import CoreData
  9. extension UserDefaults {
  10. private enum Keys {
  11. static let lastHistoryToken = "lastHistoryToken"
  12. }
  13. var lastHistoryToken: NSPersistentHistoryToken? {
  14. get {
  15. guard let data = data(forKey: Keys.lastHistoryToken) else { return nil }
  16. return try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSPersistentHistoryToken.self, from: data)
  17. }
  18. set {
  19. guard let token = newValue else {
  20. removeObject(forKey: Keys.lastHistoryToken)
  21. return
  22. }
  23. let data = try? NSKeyedArchiver.archivedData(withRootObject: token, requiringSecureCoding: true)
  24. set(data, forKey: Keys.lastHistoryToken)
  25. }
  26. }
  27. }