KMSignatureManager.swift 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // KMSignatureManager.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by lizhe on 2023/10/9.
  6. //
  7. import Foundation
  8. @objcMembers class KMSignatureManager: NSObject {
  9. static let manager = KMSignatureManager()
  10. var signatureList: [KMSignature] = []
  11. override init() {
  12. super.init()
  13. signatureList = []
  14. loadAllSignatureList()
  15. }
  16. @objc func loadAllSignatureList() {
  17. signatureList.removeAll()
  18. if let fileDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
  19. let newFilePath = fileDirectory.appendingPathComponent("NewSignatureList")
  20. if FileManager.default.fileExists(atPath: newFilePath.path) {
  21. // 使用 New 的数据
  22. } else { // 第一次加载 或 未存 New 的数据
  23. let filePath = fileDirectory.appendingPathComponent("SignatureList")
  24. if FileManager.default.fileExists(atPath: filePath.path) {
  25. NSKeyedUnarchiver.setClass(KMSignature.self, forClassName: "KMSignature")
  26. if let array = NSKeyedUnarchiver.unarchiveObject(withFile: filePath.path) as? [KMSignature] {
  27. for model in array {
  28. signatureList.append(model)
  29. }
  30. }
  31. }
  32. }
  33. }
  34. if let fileDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
  35. let filePath = fileDirectory.appendingPathComponent("NewSignatureList")
  36. if FileManager.default.fileExists(atPath: filePath.path) {
  37. if let array = NSKeyedUnarchiver.unarchiveObject(withFile: filePath.path) as? [KMSignature] {
  38. for model in array {
  39. signatureList.append(model)
  40. }
  41. }
  42. }
  43. }
  44. }
  45. func removeAllObject() {
  46. signatureList.removeAll()
  47. }
  48. func removeObject(index: Int) {
  49. signatureList.remove(at: index)
  50. }
  51. @objc func addSignature(_ signature: KMSignature) {
  52. signatureList.append(signature)
  53. saveSingaturesToFile()
  54. }
  55. func removeObject(_ signature: KMSignature) {
  56. signatureList.removeObject(signature)
  57. saveSingaturesToFile()
  58. }
  59. @objc func saveSingaturesToFile() {
  60. if let fileDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
  61. let filePath = fileDirectory.appendingPathComponent("NewSignatureList")
  62. NSKeyedArchiver.archiveRootObject(signatureList, toFile: filePath.path)
  63. }
  64. }
  65. }