CryptoSettingManager.swift 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // CryptoSettingManager.swift
  3. // Bark
  4. //
  5. // Created by huangfeng on 2023/3/2.
  6. // Copyright © 2023 Fin. All rights reserved.
  7. //
  8. import Foundation
  9. class CryptoSettingManager: NSObject {
  10. static let shared = CryptoSettingManager()
  11. let defaults = UserDefaults(suiteName: "group.bark")
  12. var fields: CryptoSettingFields? {
  13. get {
  14. guard let data:Data = defaults?.value(forKey: "cryptoSettingFields") as? Data else {
  15. return nil
  16. }
  17. guard let fields = try? JSONDecoder().decode(CryptoSettingFields.self, from: data) else {
  18. return nil
  19. }
  20. return fields
  21. }
  22. set {
  23. guard let newValue = newValue else {
  24. defaults?.removeObject(forKey: "cryptoSettingFields")
  25. return
  26. }
  27. guard let encoded = try? JSONEncoder().encode(newValue) else{
  28. return
  29. }
  30. defaults?.set(encoded, forKey: "cryptoSettingFields")
  31. }
  32. }
  33. override private init() {
  34. super.init()
  35. }
  36. }