App Store
let appid = "xxxxxx"
let url = URL(string: "itms-apps://itunes.apple.com/app/id\(appid)?action=write-review")!
UIApplication.shared.open(url)
颜色扩展
extension UIColor {
convenience init(hex: String) {
let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted)
var int: UInt64 = 0
Scanner(string: hex).scanHexInt64(&int)
let a, r, g, b: UInt64
switch hex.count {
case 3: // RGB (12-bit)
(a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17)
case 6: // RGB (24-bit)
(a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF)
case 8: // ARGB (32-bit)
(a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF)
default:
(a, r, g, b) = (0, 0, 0, 0)
}
self.init(red: Double(r) / 255, green: Double(g) / 255, blue: Double(b) / 255, alpha: Double(a) / 255)
}
}
extension Color {
init(hex: String) {
let hex = hex.trimmingCharacters(in: CharacterSet.alphanumerics.inverted)
var int: UInt64 = 0
Scanner(string: hex).scanHexInt64(&int)
let a, r, g, b: UInt64
switch hex.count {
case 3: // RGB (12-bit)
(a, r, g, b) = (255, (int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17)
case 6: // RGB (24-bit)
(a, r, g, b) = (255, int >> 16, int >> 8 & 0xFF, int & 0xFF)
case 8: // ARGB (32-bit)
(a, r, g, b) = (int >> 24, int >> 16 & 0xFF, int >> 8 & 0xFF, int & 0xFF)
default:
(a, r, g, b) = (0, 0, 0, 0)
}
self.init(red: Double(r) / 255, green: Double(g) / 255, blue: Double(b) / 255, opacity: Double(a) / 255)
}
}
获取公网IP
/// 获取公网IP
func getPublicIP() async -> String {
let url = URL(string: "https://www.taobao.com/help/getip.php")!
var ipAddress = ""
do {
let (data, _) = try await URLSession.shared.data(from: url)
if let str = String(data: data, encoding: .utf8) {
let pattern = #"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"#
let regex = try! NSRegularExpression(pattern: pattern)
if let range = regex.firstMatch(in: str, range: NSMakeRange(0, str.count))?.range {
let startIndex = str.index(str.startIndex, offsetBy: range.location)
let endIndex = str.index(startIndex, offsetBy: range.length)
ipAddress = String(str[(startIndex..<endIndex)])
}
}
} catch {
print(error)
}
return ipAddress
}
网友评论