DataModel.swift 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. //
  2. // DataModel.swift
  3. // KdanAuto
  4. //
  5. // Created by 朱东勇 on 2022/11/21.
  6. //
  7. import Foundation
  8. let kLoadDirectoryPathKey : String = "kLoadDirectoryPathKey";
  9. let kOriginPathComponent : String = "Origin Files"
  10. let kResultPathComponent : String = "Result Files"
  11. let kCheckPathComponent : String = "Check Files"
  12. let kLatestReportIDKey : String = "LatestReportID"
  13. class DataModel : NSObject {
  14. static var shared : DataModel = DataModel()
  15. var _directoryPath : String = ""
  16. /// Setter & Getter
  17. public func setDirectoryPath(_ path:String) {
  18. let userDefaults = UserDefaults.standard
  19. userDefaults.setValue(path, forKey: kLoadDirectoryPathKey)
  20. userDefaults.synchronize()
  21. }
  22. public func directoryPath() -> String {
  23. var path = UserDefaults.standard.value(forKey: kLoadDirectoryPathKey)
  24. if path == nil {
  25. path = ""
  26. }
  27. return path as! String
  28. }
  29. // Expand
  30. public func setIsExpand(_ fileType:String, expand:Bool) {
  31. let userDefaults = UserDefaults.standard
  32. if expand {
  33. userDefaults.setValue("true", forKey: String("\(fileType)-expand"))
  34. }else {
  35. userDefaults.setValue(nil, forKey: String("\(fileType)-expand"))
  36. }
  37. userDefaults.synchronize()
  38. }
  39. public func isExpand(_ fileType:String) -> Bool {
  40. let userDefaults = UserDefaults.standard
  41. return userDefaults.value(forKey: String("\(fileType)-expand")) != nil
  42. }
  43. public func originFilesFor(_ fileType:String, type:String) -> [String] {
  44. var path = self.directoryPath() as NSString
  45. path = path.appendingPathComponent(fileType) as NSString
  46. path = path.appendingPathComponent(type) as NSString
  47. path = path.appendingPathComponent(kOriginPathComponent) as NSString
  48. var subPaths = NSMutableArray(array: FileManager.default.subpaths(atPath: path as String) ?? [])
  49. subPaths.remove(".DS_Store")
  50. return subPaths as! [String]
  51. }
  52. public func generaNewReportID() -> String {
  53. let string = NSString.init(format: "%.0f", NSDate.now.timeIntervalSince1970) as String
  54. let userDefaults = UserDefaults.standard
  55. userDefaults.set(string, forKey: kLatestReportIDKey)
  56. userDefaults.synchronize()
  57. return string
  58. }
  59. public func latestReportID() -> String? {
  60. let userDefaults = UserDefaults.standard
  61. return userDefaults.value(forKey: kLatestReportIDKey) as? String
  62. }
  63. /// Save Data
  64. }