同遇到这个问题:
参考:
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不变的情况下,更新图片内容的
第三种方法,就是比较原始的方法了
第四种方法(没缓存了,不是很建议)
int i = arc4random() % 500000000;
NSString *testImageUrl = [NSString stringWithFormat:@"%@%@%d",imgUrlStr,@"#",i];
[_IMG sd_setImageWithURL:[NSURL URLWithString:testImageUrl] placeholderImage:[UIImage imageNamed:@"1.png"] options:SDWebImageRefreshCached];