SDWebImageDownloader cannot cache image

有在寫iOS專案的開發者絕對用過大名鼎鼎SDWebImage,絕大多數使用情境都是指定網路圖片url給某個UIImageView,以SDWebImage達到圖片快取的效果。

UIImageView載入網路圖片最簡單的方式透過sd_setImage方法直接取用,更進階的可以使用SDWebImageManager或SDWebImageDownloader,前者的用途兼具下載圖片與快取圖片,後者只能下載。

但有些圖片提供者要求必須在Http header指定安全性驗證用的value,這時候就只能使用無法圖片快取的SDWebImageDownloader

為了解決這個問題,可以搭配SDImageCache使用,SDWebImageDownloader下載完後使用url作為key儲存至memory,下次再遇到相同url只要透過此key即可載入快取給UIImageView使用

程式碼如下

if let imageCache = SDImageCache.shared.imageFromMemoryCache(forKey: myURLString) {

    imageView.image = imageCache

} else {

    SDWebImageDownloader.shared.setValue("myToken", forHTTPHeaderField: "headerName")

    SDWebImageDownloader.shared.downloadImage(with: myURLString) { (image, data, error, finished) in

        if image != nil && finished {

            SDImageCache.shared.storeImage(toMemory: image, forKey: myURLString)

            imageView.image = image

        }

        if error != nil {

            print("[下載圖片失敗] url:\(myURLString), error:\(error!)")

        }

    }

}

Install Package in Sublime Text 2

 成功安裝Package Control後,開始使用它安裝各種plugin套件。

  • 點選選單Preference→Package Control
    輸入Install Package按enter開啟搜尋package的視窗,在視窗內找到想要的plugin安裝
  • 安裝失敗的解決辦法
    請檢查網路是否使用有限制的公司網路,如果你是MAC環境網路通順卻還是不行下載,可參考此篇文章開啟Preference→Package Setting→Package Control→ Settings - User修改,在原始檔案中加入下列設定即可
"downloader_precedence": {
"windows": ["wininet"],
"osx": ["curl", "urllib"],
"linux": ["urllib", "curl", "wget"]
}

Install Package Control in Sublime Text 2

官網安裝教學有自動跟手動二種,自動只適用目前最新版Sublime Text 3,不知道Sublime Text 3何時開始收錢,反正Sublime Text 2夠用,就記錄一下同樣適用2的手動安裝方式。

  1. 開啟Sublime Text 2
  2. 點選選單的Preference→Browse Package...
    會開啟安裝路徑下的Packages資料夾,回到上一層Installed Packages資料夾
  3. 下載package
    在官網下載Package Control.sublime-package,將檔案放到前一步驟的Installed Packages資料夾
  4. 重啟Sublime Text 2
    成功的話選單會新增Package Settings與Package Control二個選項

Cmder安裝與使用

  1. Cmder下載所需安裝檔
    目前只需能執行簡單shell script,不需要Git其他擴充功能,故選擇下載Mini版。
  2. 下載完成解壓至任一資料夾
  3. 設定以系統管理員身份執行(optional)
  4. 寫一個hello script命名為test1.sh
  5. 執行Cmder.exe執行test1.sh,如預期輸出Hello

Installing cURL in Windows

 cURL不存在於Windows,自行安裝過程如下。

  1. 下載對應的壓縮包
    curl for Windows下載
  2. 解壓至想要的路徑
    路徑隨意以個人需求為主,本文將解壓後的curl-7.72.0-win64-mingw資料夾放在C:\curl\
  3. 設定環境變數
    承上,cURL執行檔實際位置在C:\curl\curl-7.72.0-win64-mingw\bin,設定環境變數對後續使用較方便

  4. 檢查是否安裝成功
    cmd視窗輸入curl -V,透過檢查版本號確認環境變數有設定成功可以無痛使用