AFNetwork SDWebImage

NSOperation,AFN用Operation可以實現(xiàn)
可以隨時取消已經(jīng)設(shè)定要準(zhǔn)備執(zhí)行的任務(wù),已經(jīng)執(zhí)行的除外
可以跨隊列設(shè)置操作的依賴關(guān)系
可以設(shè)置隊列中每一個操作的優(yōu)先級
最大操作并發(fā)數(shù)(GCD不好做)
繼續(xù)/暫停/全部取消
跨隊列設(shè)置操作的依賴關(guān)系

SDWebImage復(fù)用cell下載邏輯 http://www.itdecent.cn/p/bf998b2538b9
解決tableView復(fù)用錯亂問題:每次都會調(diào)UIImageView+WebCache文件中的 [self sd_cancelCurrentImageLoad];

圖片的下載操作放在一個NSOperationQueue并發(fā)操作隊列中,隊列默認(rèn)最大并發(fā)數(shù)是6
每個圖片對應(yīng)一些回調(diào)(下載進度,完成回調(diào)等),回調(diào)信息會存在downloader的URLCallbacks(一個字典,key是url地址,value是圖片下載回調(diào)數(shù)組)中,URLCallbacks可能被多個線程訪問,所以downloader把下載任務(wù)放在一個barrierQueue中,并設(shè)置屏障保證同一時間只有一個線程訪問URLCallbacks。,在創(chuàng)建回調(diào)URLCallbacks的block中創(chuàng)建了一個NSOperation并添加到NSOperationQueue中
下載的核心是利用NSURLSession加載數(shù)據(jù),每個圖片的下載都有一個operation操作來完成,并將這些操作放到一個操作隊列中,這樣可以實現(xiàn)圖片的并發(fā)下載。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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