SDWebImage

一. SDWebImageRefreshCached:
SDWebImageRefreshCached是专门用来处理相同url,图片不同的情况的。

示例:

[_userFaceLogo sd_setImageWithURL:[NSURL URLWithString:userDto.userImgUrl] placeholderImage:[UIImage imageNamed:@"head portrait"] options:SDWebImageRefreshCached];

详解: 关于SDWebImage的图片改变不了的问题.
该SDWebImage的版本是3.7.2,app有个修改头像的功能,成功后将原有图像替换。但遇到的问题是,替换头像后再次刷新,会返回另外一张图片,虽然头像的url是正确的,但显示的图片却是错误的。查了stackoverflow,有说将其版本换为3.7.1就能解决的,但我换了后仍会出现该问题。
有在下列代码之前加上__userFaceLogo.image = nil的,但都没解决。

[_userFaceLogo sd_setImageWithURL:[NSURL URLWithString:userDto.userImgUrl] placeholderImage:[UIImage imageNamed:@"head portrait"]];

最后换了一种方法,不用SDWebimage,就好了

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:userDto.userImgUrl]];
_userFaceLogo.image = [UIImage imageWithData:data];

更新:找出问题所在了,因为修改头像后,图片的url是不变的,而默认情况下,SDWebimage对相同url是优先使用缓存的,因此得加"options"属性

[_userFaceLogo sd_setImageWithURL:[NSURL URLWithString:userDto.userImgUrl] placeholderImage:[UIImage imageNamed:@"head portrait"] options:SDWebImageRefreshCached];

SDWebImageRefreshCached是专门用来处理相同url,图片不同的情况的。

这两种写法根据情况而定。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容