KMNTools.swift 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. class func newParseSelectedIndexs(selectedIndex: Array<Int>) -> String {
  10. if (selectedIndex.count == 0) {
  11. return ""
  12. }
  13. if (selectedIndex.count == 1) {
  14. return "\(selectedIndex.first!+1)"
  15. }
  16. var newDatas: Array<Int> = []
  17. for i in selectedIndex {
  18. newDatas.append(i)
  19. }
  20. /// 排序
  21. /// 根据id进行排序(升序)
  22. newDatas.sort(){$0 < $1}
  23. var a: Int = 0
  24. var b: Int = 0
  25. var result: String? = nil
  26. for i in newDatas {
  27. if (result == nil) {
  28. a = i
  29. b = i
  30. result = ""
  31. } else {
  32. if (i == b+1) {
  33. b = i
  34. if (i == newDatas.last) {
  35. result!.append(String(format: "%d-%d", a+1,b+1))
  36. }
  37. } else {
  38. if (a == b) {
  39. result!.append(String(format: "%d,", a+1))
  40. } else {
  41. result!.append(String(format: "%d-%d,", a+1,b+1))
  42. }
  43. a = i
  44. b = i
  45. if (i == newDatas.last) {
  46. result!.append(String(format: "%d", a+1))
  47. }
  48. }
  49. }
  50. }
  51. return result!
  52. }
  53. @objc class func parseIndexPathsSet(indexSets: Set<IndexPath>) -> String {
  54. var indexSet = IndexSet()
  55. for indeIndexPath in indexSets {
  56. indexSet.insert(indeIndexPath.item)
  57. }
  58. return self.parseIndexs(indexs: indexSet.sorted())
  59. }
  60. @objc class func parseIndexSet(indexSet: IndexSet) -> String {
  61. return self.parseIndexs(indexs: indexSet.sorted())
  62. }
  63. @objc class func parseIndexs(indexs: [Int]) -> String {
  64. if (indexs.isEmpty) {
  65. return ""
  66. }
  67. if (indexs.count == 1) {
  68. return "\(indexs.first!+1)"
  69. }
  70. var sortArray: [Int] = []
  71. for i in indexs {
  72. sortArray.append(i)
  73. }
  74. /// 排序 (升序)
  75. sortArray.sort(){$0 < $1}
  76. var a: Int = 0
  77. var b: Int = 0
  78. var result: String?
  79. for i in sortArray {
  80. if (result == nil) {
  81. a = i
  82. b = i
  83. result = ""
  84. continue
  85. }
  86. if (i == b+1) {
  87. b = i
  88. if (i == sortArray.last) {
  89. result?.append(String(format: "%d-%d", a+1,b+1))
  90. }
  91. } else {
  92. if (a == b) {
  93. result?.append(String(format: "%d,", a+1))
  94. } else {
  95. result?.append(String(format: "%d-%d,", a+1,b+1))
  96. }
  97. a = i
  98. b = i
  99. if (i == sortArray.last) {
  100. result?.append(String(format: "%d", a+1))
  101. }
  102. }
  103. }
  104. return result ?? ""
  105. }
  106. }