1
URLから画像を読み込みたいですか?SWIFT:URLで画像をダウンロードできませんか?
My機能:
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
if "bigImage" == message.name {
print(message.body as? String ?? "nothing")
let urlString = message.body as! String
print(urlString)
imageView.downloadedFrom(link: urlString)
}
if imageView != nil{
}
}
私がエラーを得た:でも私は非nilのメッセージを受け取ることができます
オプションの値をアンラップながらimageView.downloadedFrom(link: urlString)
が予期せずnilを発見しました。体。
私はATSをオンにしました。本当に何が起こったのか知りたいです。
func getDataFromUrl(url: URL, completion: @escaping (_ data: Data?, _ response: URLResponse?, _ error: Error?) -> Void) { URLSession.shared.dataTask(with: url) { (data, response, error) in completion(data, response, error) }.resume() } func downloadImage(url: URL) { print("Download Started") getDataFromUrl(url: url) { (data, response, error) in guard let data = data, error == nil else { return } print(response?.suggestedFilename ?? url.lastPathComponent) print("Download Finished") DispatchQueue.main.async() {() -> Void in self.imageView.image = UIImage(data: data) } } } extension UIImageView { func downloadedFrom(url: URL, contentMode mode: UIViewContentMode = .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() {() -> Void in self.image = image } }.resume() } func downloadedFrom(link: String, contentMode mode: UIViewContentMode = .scaleAspectFit) { guard let url = URL(string: link) else { return } downloadedFrom(url: url, contentMode: mode) }
}