KMNTools.swift 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //
  2. // KMNTools.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by 丁林圭 on 2024/10/24.
  6. //
  7. import Cocoa
  8. class KMNTools: NSObject {
  9. @objc class func parseIndexPathsSet(indexSets: Set<IndexPath>) -> String {
  10. var indexSet = IndexSet()
  11. for indeIndexPath in indexSets {
  12. indexSet.insert(indeIndexPath.item)
  13. }
  14. return self.parseIndexs(indexs: indexSet.sorted())
  15. }
  16. @objc class func parseIndexSet(indexSet: IndexSet) -> String {
  17. return self.parseIndexs(indexs: indexSet.sorted())
  18. }
  19. @objc class func parseIndexs(indexs: [Int]) -> String {
  20. if (indexs.isEmpty) {
  21. return ""
  22. }
  23. if (indexs.count == 1) {
  24. return "\(indexs.first!+1)"
  25. }
  26. var sortArray: [Int] = []
  27. for i in indexs {
  28. sortArray.append(i)
  29. }
  30. /// 排序 (升序)
  31. sortArray.sort(){$0 < $1}
  32. var a: Int = 0
  33. var b: Int = 0
  34. var result: String?
  35. for i in sortArray {
  36. if (result == nil) {
  37. a = i
  38. b = i
  39. result = ""
  40. continue
  41. }
  42. if (i == b+1) {
  43. b = i
  44. if (i == sortArray.last) {
  45. result?.append(String(format: "%d-%d", a+1,b+1))
  46. }
  47. } else {
  48. if (a == b) {
  49. result?.append(String(format: "%d,", a+1))
  50. } else {
  51. result?.append(String(format: "%d-%d,", a+1,b+1))
  52. }
  53. a = i
  54. b = i
  55. if (i == sortArray.last) {
  56. result?.append(String(format: "%d", a+1))
  57. }
  58. }
  59. }
  60. return result ?? ""
  61. }
  62. }