Bläddra i källkod

【2025】【综合】数据缓存管理优化

niehaoyu 1 månad sedan
förälder
incheckning
1cc3e910f5

+ 19 - 50
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFAnnotationConfig.swift

@@ -88,87 +88,56 @@ extension CPDFAnnotationConfig {
     
     //MARK: - Color
     class func setDefaultColor(_ color: NSColor, toKey key: String) {
-        let colorString = color.toHex(alpha: true)
-        UserDefaults.standard.set(colorString, forKey: key)
-        UserDefaults.standard.synchronize()
+        UserDefaults.setDefaultColor(color, toKey: key)
     }
     
     class func getDefaultColor(forKey key: String) -> NSColor? {
-        let colorString = UserDefaults.standard.object(forKey: key) as? AnyObject
-        if let data = colorString as? String {
-            return NSColor.km_init(hex: data)
-        }
-        return nil
+        return UserDefaults.getDefaultColor(forKey: key)
     }
     
     //MARK: - String
-    class func getDefaultStringValue(forKey key: String) -> String? {
-        if let value = UserDefaults.standard.value(forKey: key) {
-            if let data = value as? String {
-                return data
-            }
-        }
-        return nil
+    class func setDefaultStringValue(_ value: String, toKey key: String) {
+        UserDefaults.setDefaultStringValue(value, toKey: key)
     }
     
-    class func setDefaultStringValue(_ value: String, toKey key: String) {
-        UserDefaults.standard.setValue(value, forKey: key)
-        UserDefaults.standard.synchronize()
+    class func getDefaultStringValue(forKey key: String) -> String? {
+        UserDefaults.getDefaultStringValue(forKey: key)
     }
     
     //MARK: - Float
-    class func getDefaultFloatValue(forKey key: String) -> CGFloat? {
-        if let value = UserDefaults.standard.value(forKey: key) {
-            if let data = value as? CGFloat {
-                return data
-            }
-        }
-        return nil
+    class func setDefaultFloatValue(_ value: CGFloat, toKey key: String) {
+        UserDefaults.setDefaultFloatValue(value, toKey: key)
     }
     
-    class func setDefaultFloatValue(_ value: CGFloat, toKey key: String) {
-        UserDefaults.standard.setValue(value, forKey: key)
-        UserDefaults.standard.synchronize()
+    class func getDefaultFloatValue(forKey key: String) -> CGFloat? {
+        return UserDefaults.getDefaultFloatValue(forKey: key)
     }
     
     //MARK: - Int
     class func getDefaultIntValue(forKey key: String) -> Int? {
-        if let value = UserDefaults.standard.value(forKey: key) {
-            if let data = value as? Int {
-                return data
-            }
-        }
-        return nil
+        return UserDefaults.getDefaultIntValue(forKey: key)
     }
     
     class func setDefaultIntValue(_ value: Int, toKey key: String) {
-        UserDefaults.standard.setValue(value, forKey: key)
-        UserDefaults.standard.synchronize()
+        UserDefaults.setDefaultIntValue(value, toKey: key)
     }
     
     //MARK: - Array
-    class func getDefaultArrayValue(forKey key: String) -> [Any] {
-        if let value = UserDefaults.standard.value(forKey: key) {
-            if let data = value as? [Any] {
-                return data
-            }
-        }
-        return []
+    class func setDefaultArrayValue(_ value: [Any], toKey key: String) {
+        return UserDefaults.setDefaultArrayValue(value, toKey: key)
     }
     
-    class func setDefaultArrayValue(_ value: [Any], toKey key: String) {
-        UserDefaults.standard.setValue(value, forKey: key)
-        UserDefaults.standard.synchronize()
+    class func getDefaultArrayValue(forKey key: String) -> [Any] {
+        return UserDefaults.getDefaultArrayValue(forKey: key)
     }
     
-    //MARK: - Int
+    //MARK: - Bool
     class func getDefaultBoolValue(forKey key: String) -> Bool {
-        return UserDefaults.standard.bool(forKey: key)
+        return UserDefaults.getDefaultBoolValue(forKey: key)
     }
     
     class func setDefaultBoolValue(_ value: Bool, toKey key: String) {
-        UserDefaults.standard.setValue(value, forKey: key)
-        UserDefaults.standard.synchronize()
+        UserDefaults.setDefaultBoolValue(value, toKey: key)
     }
     
 }

+ 0 - 44
PDF Office/PDF Master/KMClass/Tools/Category/Foundation/NSUserDefaults_KMExtension.swift

@@ -1,44 +0,0 @@
-//
-//  NSUserDefaults_KMExtension.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/11/23.
-//
-
-import Foundation
-
-extension UserDefaults { 
-    @objc func color(forKey key: String) -> NSColor? {
-        let colorString = self.object(forKey: key) as? AnyObject
-        var color: NSColor?
-        if let data = colorString?.isKind(of: NSData.self), data {
-            color = NSUnarchiver.unarchiveObject(with: colorString as! Data) as? NSColor
-        } else {
-            if let data = colorString as? String {
-                color = NSColor.km_init(hex: data)
-            }
-        }
-        return color
-    }
-    
-    @objc func setColor(_ color: NSColor, forKey key: String) {
- 
-        let data = NSArchiver.archivedData(withRootObject: color)
-        self.set(data, forKey: key)
-    }
-    
-    @objc func safe_setColor(_ color: NSColor?, forKey key: String) {
-        if let c = color {
-            self.setColor(c, forKey: key)
-        }
-    }
-    
-    @objc func font(forNameKey nameKey: String, sizeKey: String) -> NSFont? {
-        guard let fontName = string(forKey: nameKey) else {
-            return nil
-        }
-        
-        let fontSize = CGFloat(double(forKey: sizeKey))
-        return NSFont(name: fontName, size: fontSize)
-    }
-}

+ 134 - 0
PDF Office/PDF Master/KMClass/Tools/Category/Foundation/UserDefaults_Extension.swift

@@ -0,0 +1,134 @@
+//
+//  NSUserDefaults_KMExtension.swift
+//  PDF Reader Pro
+//
+//  Created by wanjun on 2023/11/23.
+//
+
+import Foundation
+
+extension UserDefaults { 
+    @objc func color(forKey key: String) -> NSColor? {
+        let colorString = self.object(forKey: key) as? AnyObject
+        var color: NSColor?
+        if let data = colorString?.isKind(of: NSData.self), data {
+            color = NSUnarchiver.unarchiveObject(with: colorString as! Data) as? NSColor
+        } else {
+            if let data = colorString as? String {
+                color = NSColor.km_init(hex: data)
+            }
+        }
+        return color
+    }
+    
+    @objc func setColor(_ color: NSColor, forKey key: String) {
+ 
+        let data = NSArchiver.archivedData(withRootObject: color)
+        self.set(data, forKey: key)
+    }
+    
+    @objc func safe_setColor(_ color: NSColor?, forKey key: String) {
+        if let c = color {
+            self.setColor(c, forKey: key)
+        }
+    }
+    
+    @objc func font(forNameKey nameKey: String, sizeKey: String) -> NSFont? {
+        guard let fontName = string(forKey: nameKey) else {
+            return nil
+        }
+        
+        let fontSize = CGFloat(double(forKey: sizeKey))
+        return NSFont(name: fontName, size: fontSize)
+    }
+}
+
+//MARK: - Class
+extension UserDefaults {
+    
+    //MARK: - Color
+    class func setDefaultColor(_ color: NSColor, toKey key: String) {
+        let colorString = color.toHex(alpha: true)
+        UserDefaults.standard.set(colorString, forKey: key)
+        UserDefaults.standard.synchronize()
+    }
+    
+    class func getDefaultColor(forKey key: String) -> NSColor? {
+        let colorString = UserDefaults.standard.object(forKey: key) as? AnyObject
+        if let data = colorString as? String {
+            return NSColor.km_init(hex: data)
+        }
+        return nil
+    }
+    
+    //MARK: - String
+    class func getDefaultStringValue(forKey key: String) -> String? {
+        if let value = UserDefaults.standard.value(forKey: key) {
+            if let data = value as? String {
+                return data
+            }
+        }
+        return nil
+    }
+    
+    class func setDefaultStringValue(_ value: String, toKey key: String) {
+        UserDefaults.standard.setValue(value, forKey: key)
+        UserDefaults.standard.synchronize()
+    }
+    
+    //MARK: - Float
+    class func getDefaultFloatValue(forKey key: String) -> CGFloat? {
+        if let value = UserDefaults.standard.value(forKey: key) {
+            if let data = value as? CGFloat {
+                return data
+            }
+        }
+        return nil
+    }
+    
+    class func setDefaultFloatValue(_ value: CGFloat, toKey key: String) {
+        UserDefaults.standard.setValue(value, forKey: key)
+        UserDefaults.standard.synchronize()
+    }
+    
+    //MARK: - Int
+    class func getDefaultIntValue(forKey key: String) -> Int? {
+        if let value = UserDefaults.standard.value(forKey: key) {
+            if let data = value as? Int {
+                return data
+            }
+        }
+        return nil
+    }
+    
+    class func setDefaultIntValue(_ value: Int, toKey key: String) {
+        UserDefaults.standard.setValue(value, forKey: key)
+        UserDefaults.standard.synchronize()
+    }
+    
+    //MARK: - Array
+    class func getDefaultArrayValue(forKey key: String) -> [Any] {
+        if let value = UserDefaults.standard.value(forKey: key) {
+            if let data = value as? [Any] {
+                return data
+            }
+        }
+        return []
+    }
+    
+    class func setDefaultArrayValue(_ value: [Any], toKey key: String) {
+        UserDefaults.standard.setValue(value, forKey: key)
+        UserDefaults.standard.synchronize()
+    }
+    
+    //MARK: - Int
+    class func getDefaultBoolValue(forKey key: String) -> Bool {
+        return UserDefaults.standard.bool(forKey: key)
+    }
+    
+    class func setDefaultBoolValue(_ value: Bool, toKey key: String) {
+        UserDefaults.standard.setValue(value, forKey: key)
+        UserDefaults.standard.synchronize()
+    }
+    
+}

+ 8 - 8
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -772,9 +772,9 @@
 		9FE0BBE72B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FE0BBE32B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib */; };
 		9FE0BBE82B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FE0BBE32B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib */; };
 		9FE0BBE92B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FE0BBE32B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib */; };
-		9FE0BBEB2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE0BBEA2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift */; };
-		9FE0BBEC2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE0BBEA2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift */; };
-		9FE0BBED2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE0BBEA2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift */; };
+		9FE0BBEB2B0F242C00CD1CAC /* UserDefaults_Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE0BBEA2B0F242C00CD1CAC /* UserDefaults_Extension.swift */; };
+		9FE0BBEC2B0F242C00CD1CAC /* UserDefaults_Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE0BBEA2B0F242C00CD1CAC /* UserDefaults_Extension.swift */; };
+		9FE0BBED2B0F242C00CD1CAC /* UserDefaults_Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE0BBEA2B0F242C00CD1CAC /* UserDefaults_Extension.swift */; };
 		9FF0D0532B6A3EE40018A732 /* CPDFListView+Form.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF0D0522B6A3EE40018A732 /* CPDFListView+Form.swift */; };
 		9FF0D0542B6A3EE40018A732 /* CPDFListView+Form.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF0D0522B6A3EE40018A732 /* CPDFListView+Form.swift */; };
 		9FF0D0552B6A3EE40018A732 /* CPDFListView+Form.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF0D0522B6A3EE40018A732 /* CPDFListView+Form.swift */; };
@@ -5020,7 +5020,7 @@
 		9FE0BBDD2B0E009F00CD1CAC /* KMColorPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMColorPickerView.swift; sourceTree = "<group>"; };
 		9FE0BBE22B0EFBA300CD1CAC /* KMAnnotationFontWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAnnotationFontWindowController.swift; sourceTree = "<group>"; };
 		9FE0BBE32B0EFBA300CD1CAC /* KMAnnotationFontWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMAnnotationFontWindowController.xib; sourceTree = "<group>"; };
-		9FE0BBEA2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSUserDefaults_KMExtension.swift; sourceTree = "<group>"; };
+		9FE0BBEA2B0F242C00CD1CAC /* UserDefaults_Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaults_Extension.swift; sourceTree = "<group>"; };
 		9FF0D0522B6A3EE40018A732 /* CPDFListView+Form.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CPDFListView+Form.swift"; sourceTree = "<group>"; };
 		9FF371B02C69A6BB005F9CC5 /* CDistanceSettingWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CDistanceSettingWindowController.xib; sourceTree = "<group>"; };
 		9FF371B12C69A6BB005F9CC5 /* CDistanceSettingWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CDistanceSettingWindowController.swift; sourceTree = "<group>"; };
@@ -6966,7 +6966,7 @@
 				BB74DA762AC41182006EDFE7 /* NSFont+KMExtension.swift */,
 				BB74DA7A2AC41DE9006EDFE7 /* NSString+KMExtension.swift */,
 				BB90E4ED2AF3546500B04B9F /* NSUserDefaultsController+KMExtension.swift */,
-				9FE0BBEA2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift */,
+				9FE0BBEA2B0F242C00CD1CAC /* UserDefaults_Extension.swift */,
 				9FB2210D2B1AE35E00A5B208 /* NSBitmapImageRep_KMExtension.swift */,
 				AD4C71702B9ADFE0003A6286 /* NSError_Extensions.swift */,
 			);
@@ -15118,7 +15118,7 @@
 				BBA922322B4E97540061057A /* KMPurchaseLimitWindowController.swift in Sources */,
 				AD1D484E2AFB8506007AC1F0 /* KMMergeTableViewCell.swift in Sources */,
 				BBEDC2272B98205200970C54 /* Bundle+KMExtension.swift in Sources */,
-				9FE0BBEB2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift in Sources */,
+				9FE0BBEB2B0F242C00CD1CAC /* UserDefaults_Extension.swift in Sources */,
 				BBA93D3329BF0ECE0044E0DD /* SKKeychain.m in Sources */,
 				AD055E2D2B70B3D50035F824 /* KMBookmarkSheetController.swift in Sources */,
 				ADDF837D2B391A5D00A81A4E /* DSignatureDetailsViewController.swift in Sources */,
@@ -16194,7 +16194,7 @@
 				ADBC2D20299CDA29006280C8 /* NSView+Layer.swift in Sources */,
 				AD8B59802D2B777700150EA6 /* KMBatchConverPDFWordView.swift in Sources */,
 				AD1CA3F82A05FCB60070541F /* KMAnnotationScreenViewController.swift in Sources */,
-				9FE0BBEC2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift in Sources */,
+				9FE0BBEC2B0F242C00CD1CAC /* UserDefaults_Extension.swift in Sources */,
 				BB2F78A72D01F9EF00F6B636 /* KMCreateSignWindowController.swift in Sources */,
 				BB853C922AF8DCBF009C20C1 /* KMBatchOperateRemovePasswordViewController.swift in Sources */,
 				AD8B593B2D2B777700150EA6 /* KMBatchCompressView.swift in Sources */,
@@ -16611,7 +16611,7 @@
 				BB853C8C2AF8BC7D009C20C1 /* KMBatchAddPasswordOperation.swift in Sources */,
 				F3C798502CD0F62A008A18E2 /* CPDFDocument+PageEditManager.swift in Sources */,
 				BBF19E9B2B0B3218007154C8 /* KMAnnotationStamp.swift in Sources */,
-				9FE0BBED2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift in Sources */,
+				9FE0BBED2B0F242C00CD1CAC /* UserDefaults_Extension.swift in Sources */,
 				BBBB6CDC2AD15B900035AA66 /* CPDFFreeTextAnnotation+PDFListView.swift in Sources */,
 				658FDBB42C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.swift in Sources */,
 				ADD3EBD92D111983005B711B /* KMCompressManager.swift in Sources */,