12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //
- // extension.swift
- // AIPaint
- //
- // Created by Fengyu He on 2022/12/2.
- //
- import CommonCrypto
- import UIKit
- extension String {
- var sha256: String {
- let utf8 = cString(using: .utf8)
- var digest = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
- CC_SHA256(utf8, CC_LONG(utf8!.count - 1), &digest)
- return digest.reduce("") { $0 + String(format:"%02x", $1) }
- }
-
- func encodeBase64() -> String {
- if let data = self.data(using: .utf8) {
- return data.base64EncodedString()
- }
- return ""
- }
-
- func decodeBase64() -> String? {
- if let data = Data(base64Encoded: self) {
- return String(data: data, encoding: .utf8)
- }
- return nil
- }
- }
- extension UIImageView {
- func downloadedFrom(url: URL, contentMode mode: UIView.ContentMode = .scaleAspectFit) {
- contentMode = mode
- URLSession.shared.dataTask(with: url) { data, response, error in
- guard
- let httpURLResponse = response as? HTTPURLResponse, httpURLResponse.statusCode == 200,
- let mimeType = response?.mimeType, mimeType.hasPrefix("image"),
- let data = data, error == nil,
- let image = UIImage(data: data)
- else { return }
- DispatchQueue.main.async() {
- self.image = image
- }
- }.resume()
- }
- func downloadedFrom(link: String, contentMode mode: UIView.ContentMode = .scaleAspectFit) {
- guard let url = URL(string: link) else { return }
- downloadedFrom(url: url, contentMode: mode)
- }
- }
|