SDWebImage加载不同图片但是图片的URL是同一个,图片刷新失败

同遇到这个问题:
参考:

iOS开发:SDWebImage加载不同图片但是图片的URL是同一个,图片加载失败

重点是在SDWebImageManager.m文件中,大概176行左右

在(利用SDWebImageRefreshCached)的基础上,修改SD库

if (image && options & SDWebImageRefreshCached) {
    // force progressive off if image already cached but forced refreshing
    downloaderOptions &= ~SDWebImageDownloaderProgressiveDownload;
    // ignore image read from NSURLCache if image if cached but force refreshing
    downloaderOptions |= SDWebImageDownloaderIgnoreCachedResponse;
}

添加这一段代码// remove SDWebImageDownloaderUseNSURLCache flag downloaderOptions &= ~SDWebImageDownloaderUseNSURLCache;

if (image && options & SDWebImageRefreshCached) {
    // force progressive off if image already cached but forced refreshing
    downloaderOptions &= ~SDWebImageDownloaderProgressiveDownload;


   没错就是这里啦    


    // ignore image read from NSURLCache if image if cached but force refreshing
    downloaderOptions |= SDWebImageDownloaderIgnoreCachedResponse;
}

if (image && options & SDWebImageRefreshCached) {
    // force progressive off if image already cached but forced refreshing
    downloaderOptions &= ~SDWebImageDownloaderProgressiveDownload;
    // remove SDWebImageDownloaderUseNSURLCache flag
    downloaderOptions &= ~SDWebImageDownloaderUseNSURLCache;
    // ignore image read from NSURLCache if image if cached but force refreshing
    downloaderOptions |= SDWebImageDownloaderIgnoreCachedResponse;
}

第二种解决方法,是通过改变“额外的header”来实现的

iOS开发~SDWebImage是如何做到Url不变的情况下,更新图片内容的

第三种方法,就是比较原始的方法了

UIImageView异步加载网络图片

第四种方法(没缓存了,不是很建议)

    int i = arc4random() % 500000000;
    NSString *testImageUrl = [NSString stringWithFormat:@"%@%@%d",imgUrlStr,@"#",i];
    [_IMG sd_setImageWithURL:[NSURL URLWithString:testImageUrl] placeholderImage:[UIImage imageNamed:@"1.png"] options:SDWebImageRefreshCached];

你可能感兴趣的:(SDWebImage加载不同图片但是图片的URL是同一个,图片刷新失败)