UserDefaultsExtension.swift 759 B

123456789101112131415161718192021222324
  1. import CoreData
  2. import Foundation
  3. extension UserDefaults {
  4. private enum Keys {
  5. static let lastHistoryToken = "lastHistoryToken"
  6. }
  7. var lastHistoryToken: NSPersistentHistoryToken? {
  8. get {
  9. guard let data = data(forKey: Keys.lastHistoryToken) else { return nil }
  10. return try? NSKeyedUnarchiver.unarchivedObject(ofClass: NSPersistentHistoryToken.self, from: data)
  11. }
  12. set {
  13. guard let token = newValue else {
  14. removeObject(forKey: Keys.lastHistoryToken)
  15. return
  16. }
  17. let data = try? NSKeyedArchiver.archivedData(withRootObject: token, requiringSecureCoding: true)
  18. set(data, forKey: Keys.lastHistoryToken)
  19. }
  20. }
  21. }