sdwebimage緩衝圖片對比問題,

來源:互聯網
上載者:User

sdwebimage緩衝圖片對比問題,

 開發IOS項目的時候,發現一個關於第三方架構sdwebimage的圖片緩衝的問題。搜了一下百度,發現有人已經提出同樣的問題,如下:


有個問題請教一下各位,就是用sdwebimage下載圖片的時候會緩衝到手機上,那麼我把同一個url下面的圖片換了,這個時候再用sdwebimage載入這個url,他是用緩衝的還是重新下載了?

如果,她載入了緩衝的圖片那麼就錯了,因為這個url下的圖片已經換掉了,如果他從新下載了,他是如何對比緩衝圖片的不同的。


然後,我搜到瞭解答,答案如下:


答案:使用緩衝。
原因:圖片在NSCache中是以absolute url作為key儲存,在磁碟緩衝目錄中是以原始url進行md5後的字串作為檔案名稱儲存。查詢匹配的時候只按key和檔案名稱匹配。
證據:NSCache
- (NSString *)cacheKeyForURL:(NSURL *)url
{
#if NS_BLOCKS_AVAILABLE
    if (self.cacheKeyFilter)
    {
        return self.cacheKeyFilter(url);
    }
    else
    {
        return [url absoluteString];
    }
#else
    return [url absoluteString];
#endif
}


SDImageCache
- (NSString *)cachePathForKey:(NSString *)key
{
    const char *str = [key UTF8String];
    unsigned char r[CC_MD5_DIGEST_LENGTH];
    CC_MD5(str, (CC_LONG)strlen(str), r);
    NSString *filename = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
                          r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15]];

    return [diskCachePath stringByAppendingPathComponent:filename];
}
備忘:以上結論在2.x版本下有效,3.0以上版本不瞭解。


所以,sdwebimage的緩衝策略還是不錯的,以後儘管放心地調用setImagewithUrl的方法,他會非同步下載和自己處理緩衝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.