Quellcode durchsuchen

【综合】签名个人信息数据兼容,规避crash

tangchao vor 10 Monaten
Ursprung
Commit
c88b0df494

+ 7 - 2
PDF Office/PDF Master/Class/PDFTools/SelfSign/Tools/KMProfileInfo.swift

@@ -12,6 +12,8 @@ private var _shared: KMProfileInfo?
 @objcMembers class KMProfileInfo: NSObject, NSCoding {
     private static let KMProfileUnarchiveKey = "KMProfileUnarchiveKeyTemp1"
     
+    private static let KMProfileUnarchiveNewKey = "KMProfileUnarchiveNewKeyTemp1"
+    
     private let KMProfileSaveInfoFullNameKey = "KMProfileSaveInfoFullNameKey"
     private let KMProfileSaveInfoFirstNameKey = "KMProfileSaveInfoFirstNameKey"
     private let KMProfileSaveInfoMiddleNameKey = "KMProfileSaveInfoMiddleNameKey"
@@ -232,7 +234,10 @@ private var _shared: KMProfileInfo?
         }
         
         let defaults = UserDefaults.standard
-        if let encodedObject = defaults.object(forKey: KMProfileUnarchiveKey) as? Data {
+        if let encodedObject = defaults.object(forKey: KMProfileUnarchiveNewKey) as? Data {
+            let instance = NSKeyedUnarchiver.unarchiveObject(with: encodedObject)
+            _shared = (instance as! KMProfileInfo)
+        } else if let encodedObject = defaults.object(forKey: KMProfileUnarchiveKey) as? Data {
             NSKeyedUnarchiver.setClass(Self.self, forClassName: "KMProfileInfo")
             let instance = NSKeyedUnarchiver.unarchiveObject(with: encodedObject)
             _shared = (instance as! KMProfileInfo)
@@ -329,7 +334,7 @@ extension KMProfileInfo {
     private func _saveInfo() {
         let encodedObject = NSKeyedArchiver.archivedData(withRootObject: self)
         let defaults = UserDefaults.standard
-        defaults.set(encodedObject, forKey: KMProfileInfo.KMProfileUnarchiveKey)
+        defaults.set(encodedObject, forKey: KMProfileInfo.KMProfileUnarchiveNewKey)
         defaults.synchronize()
     }