Swift・iOS

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

【Swift】NSCacheを使って画像をキャッシュする

 

はじめに

NSCacheを使ってUIImageをキャッシュする実装について記事に残します。

 

開発環境

 

実装

キャッシュする際のキーはAnyObject型、値はUIImage型としています。

protocol ImageCache {
    var cache: NSCache<AnyObject, UIImage> { get set }
    
    subscript(key: AnyObject) -> UIImage? { get set }
}

struct DefaultImageCache: ImageCache {
    var cache = NSCache<AnyObject, UIImage>()
    
    subscript(key: AnyObject) -> UIImage? {
        get {
            cache.object(forKey: key)
        }
        set(image) {
            cache.setObject(image!, forKey: key)
        }
    }
}

 

おわりに

次回はEnvironmentValuesについて記事に残そうと思います。

 

参考