SDWebImage怎么實(shí)現(xiàn)圖片的緩存機(jī)制的?

以tableViewController為例:

  1. 因?yàn)槊看蝐ell需要顯示都需要重新調(diào)用-(UITableViewCell)tableView:(UITableView)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{ }方法
  2. 所以每次調(diào)用tableView顯示行的數(shù)據(jù)源的方法時,如果需要從網(wǎng)絡(luò)加載圖片,就需要將加載圖片的耗時操作放在子線程上執(zhí)行,從網(wǎng)絡(luò)上下載的圖片可以以鍵值對的形式保存;在定義可變字典中,將每張圖片的唯一的路徑作為鍵,將從網(wǎng)絡(luò)上下載下來的圖片作為值保存在內(nèi)存緩存中,這樣每次滑動tableView cell重用時就直接判斷內(nèi)存緩存中有沒有需要的圖片;如果有就不需要下載,在沒有出現(xiàn)內(nèi)存警告或者程序員手動清理內(nèi)存緩存時,就直接從內(nèi)存緩存中獲取圖片。
  3. 為了每次退出程序,再次進(jìn)入程序時,不浪費(fèi)用戶的流量,需要將第一次進(jìn)入程序時加載的圖片保存到本地沙盒緩存文件中,在沙盒中保存的圖片數(shù)據(jù)沒有被改動之前,下次開啟程序就直接從沙盒的緩存文件中讀取需要的顯示的圖片,并將沙盒緩存文件夾(Cache)中保存的圖片保存到內(nèi)存緩存中,這樣用戶每次滑動tableView cell重用時直接從內(nèi)存緩存中讀取而不是從沙盒中讀取,節(jié)約時間。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,656評論 30 472
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,694評論 4 61
  • tableView加載網(wǎng)絡(luò)圖片 需求的效果圖 數(shù)據(jù)結(jié)構(gòu) 獲取模型數(shù)組 準(zhǔn)備模型 .h文件 .m文件 KVC字典轉(zhuǎn)模...
    月下獨(dú)酌灬閱讀 2,270評論 4 18
  • 在我們還很小,很小的時候, 爸媽是我們依賴的港灣, 不離,不舍,不愿遠(yuǎn)行! 在我們長大后,離家的時候, 爸媽是我們...
    秀秀王子閱讀 381評論 0 1
  • 1. 現(xiàn)在很多女人都說,寧愿在自行車上笑, 也不愿意在寶馬車上哭!呵呵,我才不會 讓我的女人哭,畢竟我只有自行車!...
    野生吐槽君閱讀 334評論 0 1

友情鏈接更多精彩內(nèi)容