// // KMSignatureManager.swift // PDF Reader Pro // // Created by lizhe on 2023/10/9. // import Foundation @objcMembers class KMSignatureManager: NSObject { static let manager = KMSignatureManager() var signatureList: [KMSignature] = [] override init() { super.init() signatureList = [] loadAllSignatureList() } @objc func loadAllSignatureList() { signatureList.removeAll() if let fileDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { let newFilePath = fileDirectory.appendingPathComponent("NewSignatureList") if FileManager.default.fileExists(atPath: newFilePath.path) { // 使用 New 的数据 } else { // 第一次加载 或 未存 New 的数据 let filePath = fileDirectory.appendingPathComponent("SignatureList") if FileManager.default.fileExists(atPath: filePath.path) { NSKeyedUnarchiver.setClass(KMSignature.self, forClassName: "KMSignature") if let array = NSKeyedUnarchiver.unarchiveObject(withFile: filePath.path) as? [KMSignature] { for model in array { signatureList.append(model) } } } } } if let fileDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { let filePath = fileDirectory.appendingPathComponent("NewSignatureList") if FileManager.default.fileExists(atPath: filePath.path) { if let array = NSKeyedUnarchiver.unarchiveObject(withFile: filePath.path) as? [KMSignature] { for model in array { signatureList.append(model) } } } } } func removeAllObject() { signatureList.removeAll() } func removeObject(index: Int) { signatureList.remove(at: index) } @objc func addSignature(_ signature: KMSignature) { signatureList.append(signature) saveSingaturesToFile() } func removeObject(_ signature: KMSignature) { signatureList.removeObject(signature) saveSingaturesToFile() } @objc func saveSingaturesToFile() { if let fileDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { let filePath = fileDirectory.appendingPathComponent("NewSignatureList") NSKeyedArchiver.archiveRootObject(signatureList, toFile: filePath.path) } } }