ThimraTV/MoviaBox/Base/Extension/String+SPAdd.swift
2025-05-08 18:51:12 +08:00

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)
}
}