62 lines
1.7 KiB
Swift
62 lines
1.7 KiB
Swift
//
|
|
// 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)
|
|
}
|
|
}
|