Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

【Swift】UIImageViewにURLの画像を表示する(2)

【Swift】UIImageViewにURLの画像を表示する(1) - Swift・iOSの続きです。今回はURLSessionを使ってUIImageViewにURLの画像を表示してみます。

 

■開発環境

Xcode 10.1

・Swift 4.2.1

 

■手順

1.StoryboardでUIImageViewを配置

2.StoryboardのImageViewをViewControllerに関連づける&ViewControllerに以下実装

・ViewController.swift

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var imageView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.showImage(imageView: imageView, imageUrl: "{画像URL}")
    }
    
    private func showImage(imageView: UIImageView, imageUrl: String) {
        let url = URL(string: imageUrl)!
        
        let task = URLSession.shared.dataTask(with: url) { data, responds, error in
            // リクエストに失敗
            if let error = error {
                print(error.localizedDescription)
                return
            }
            
            guard let data = data, let response = responds as? HTTPURLResponse else {
                return
            }
            
            // リクエスト成功
            if response.statusCode == 200 {
                DispatchQueue.main.async {
                    imageView.image = UIImage(data: data)
                }
            } else {
                // サーバー側でリクエストされたものが正常に返せていない
                print(response.statusCode)
            }
        }
        task.resume()
    }
}

 

■関連リンク

URLSession - Foundation | Apple Developer Documentation

HTTPURLResponse - Foundation | Apple Developer Documentation

【Swift】URLSessionまとめ - Qiita