圖片cache機制

Darren
Swift

今天來幫之前寫的ImageView extension加上cache機制 不然每次滑動畫面圖片就不斷閃動 看起來超不舒服而且一直從Firebase下載圖片超浪費效能

今天來幫之前寫的ImageView extension加上cache機制

不然每次滑動畫面圖片就不斷閃動

看起來超不舒服而且一直從Firebase下載圖片超浪費效能

先看code

import

let
=
NSCache
AnyObject
AnyObject

extension
UIImageView
    
    func
loadImageUsingCashWithUrlString
urlString
String
        
        // Check cache for image
        if
let
=
as
AnyObject
as?
UIImage
            self
=
            return
        }
        
        let
=
URL
        
        URLSession
!
in
            if
!=
nil
                print
!
                return
            }
            
            DispatchQueue
                
                if
let
=
UIImage
!
                    imageCache.setObject(downloadedImage, forKey: urlString as
AnyObject
                    self
=
UIImage
!
                }
                
            }
            
        }.resume()
    }
}

呼叫這function時會先去看cache裡面有沒有存過

不然就用拿到的urlString去下載

下載完就用urlString當作cache object的key把圖片存起來

Thanks for reading!

I hope you found this article helpful. Feel free to share your thoughts or questions.