// // String+SPAdd.swift // MoviaBox // // Created by 曾觉新 on 2025/4/8. // import UIKit import SmartCodable extension String: SmartCodable { func length() -> Int { return self.ocString().length } func ocString() -> NSString { return self as NSString } static func timeZone() -> String { let timeZone = NSTimeZone.local as NSTimeZone // let timeZoneAbbreviation = timeZone.name.length() > 0 ? timeZone.name : "Unknown" let timeZoneSecondsFromGMT = timeZone.secondsFromGMT / 3600 return String(format: "GMT+0%d:00", timeZoneSecondsFromGMT) } ///设置首字母大写 func capitalizingFirstLetter() -> String { guard let first = self.first else { return self } return first.uppercased() + self.dropFirst() } } extension String { ///将url中的参数转换成字典 func urlQuryToDictionary() -> [String : Any] { let array = self.components(separatedBy: "&") var tempDic: [String : Any] = [:] array.forEach { if let strRange = $0.range(of: "=") { var key: String = String($0.prefix(upTo: strRange.upperBound)) key.removeLast() var value: String = String($0.suffix(from: strRange.upperBound)) value = value.removingPercentEncoding ?? value tempDic[key] = value } } return tempDic } } extension String { ///获取文字Size func size(font: UIFont, size: CGSize = CGSize(width: CGFloat(MAXFLOAT), height: CGFloat(MAXFLOAT))) -> CGSize{ let string: NSString = self as NSString return string.size(for: font, size: size, mode: .byWordWrapping) } }