KMDataManager.swift 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //
  2. // KMDataManager.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by tangchao on 2024/2/23.
  6. //
  7. import Cocoa
  8. // 数据持久化 【UserDefault、本地存储、数据库】
  9. class KMDataManager: NSObject {
  10. // 单例
  11. static let `default` = KMDataManager()
  12. }
  13. // MARK: - UserDefault
  14. extension KMDataManager {
  15. class func ud_object(forKey defaultName: String) -> Any? {
  16. return self.userD_.bool(forKey: defaultName)
  17. }
  18. class func ud_set(_ value: Any?, forKey defaultName: String, sync: Bool = true) {
  19. self.userD_.set(value, forKey: defaultName)
  20. if sync {
  21. self.userD_.synchronize()
  22. }
  23. }
  24. class func ud_removeObject(forKey defaultName: String, sync: Bool = true) {
  25. self.userD_.removeObject(forKey: defaultName)
  26. }
  27. class func ud_string(forKey defaultName: String) -> String? {
  28. return self.userD_.string(forKey: defaultName)
  29. }
  30. class func ud_array(forKey defaultName: String) -> [Any]? {
  31. return self.userD_.array(forKey: defaultName)
  32. }
  33. class func ud_dictionary(forKey defaultName: String) -> [String : Any]? {
  34. return self.userD_.dictionary(forKey: defaultName)
  35. }
  36. class func ud_data(forKey defaultName: String) -> Data? {
  37. return self.userD_.data(forKey: defaultName)
  38. }
  39. class func ud_stringArray(forKey defaultName: String) -> [String]? {
  40. return self.userD_.stringArray(forKey: defaultName)
  41. }
  42. class func ud_integer(forKey defaultName: String) -> Int {
  43. return self.userD_.integer(forKey: defaultName)
  44. }
  45. class func ud_float(forKey defaultName: String) -> Float {
  46. return self.userD_.float(forKey: defaultName)
  47. }
  48. class func ud_double(forKey defaultName: String) -> Double {
  49. return self.userD_.double(forKey: defaultName)
  50. }
  51. class func ud_bool(forKey defaultName: String) -> Bool {
  52. return self.userD_.bool(forKey: defaultName)
  53. }
  54. class func ud_url(forKey defaultName: String) -> URL? {
  55. return self.userD_.url(forKey: defaultName)
  56. }
  57. class func ud_set(_ value: Int, forKey defaultName: String, sync: Bool = true) {
  58. self.userD_.set(value, forKey: defaultName)
  59. if sync {
  60. self.userD_.synchronize()
  61. }
  62. }
  63. class func ud_set(_ value: Float, forKey defaultName: String, sync: Bool = true) {
  64. self.userD_.set(value, forKey: defaultName)
  65. if sync {
  66. self.userD_.synchronize()
  67. }
  68. }
  69. class func ud_set(_ value: Double, forKey defaultName: String, sync: Bool = true) {
  70. self.userD_.set(value, forKey: defaultName)
  71. if sync {
  72. self.userD_.synchronize()
  73. }
  74. }
  75. class func ud_set(_ value: Bool, forKey defaultName: String, sync: Bool = true) {
  76. self.userD_.set(value, forKey: defaultName)
  77. if sync {
  78. self.userD_.synchronize()
  79. }
  80. }
  81. class func ud_set(_ url: URL?, forKey defaultName: String, sync: Bool = true) {
  82. self.userD_.set(url, forKey: defaultName)
  83. if sync {
  84. self.userD_.synchronize()
  85. }
  86. }
  87. // 私有
  88. private class var userD_: UserDefaults {
  89. get {
  90. return UserDefaults.standard
  91. }
  92. }
  93. }