KMDataManager.swift 3.4 KB

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