■開発環境
・Xcode 10.2
・Swift 5.0
・Nuke 7.5.1
■手順
1.Nukeをインストール
pod 'Nuke'
2.StoryboardでUIImageViewを配置
3.StoryboardのImageViewをViewControllerに関連づける
4.ViewControllerに以下実装
https://www.hfoasi8fje3.work/entry/2019/03/30/233506tと同様で、
https://www.hfoasi8fje3.work/entry/2019/03/24/003421や、https://www.hfoasi8fje3.work/entry/2019/03/24/133155
のようにライブラリを使わずに実装するより簡潔に書けます。
import UIKit import Nuke class ViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() let url = URL(string: "{画像URL}")! Nuke.loadImage(with: url, into: imageView) } }
上記の実装では以下の処理が実行されているようです。
1.画像がメモリキャッシュ内で利用可能かどうかを同期的にチェック。
2.利用可能でなければ画像をロード。
※ロードを開始する前に、同じ画像に対する既存の未処理の要求があるかどうかも確認。見つかった場合は新しい要求は作成されない。
3.データのロード後、画像データをデコード。処理された画像はメモリキャッシュに保存され、完了クロージャに返される。
■参考リンク