iOS中使用SDWebImage加载图片失败之后如何重新加载

来源:互联网 发布:淘宝上毛孔克星管用吗 编辑:程序博客网 时间:2024/05/18 21:49

     毫无疑问,SDWebImage绝对是我们平时做项目使用频率最广的第三方框架之一,良好的封装性和性能,真的是非常优秀,最近项目中使用了这个库函数加载网络图片,但是发现了一个问题,就是有时候网速不太好,比如当前的WiFi的信号不太强,这个时候图片就会加载不出来,这个本来无可厚非,网速嘛,总是有好有坏的啊,不过当切换到比较流畅的网速的时候,比如从wifi过渡到4G,这个时候惊讶的发现,之前加载失败的图片再也没有机会重新加载出来,仔细查了下资料才发现问题的所在,我在设置加载网络图片的时候用的函数是:

  

    albumImageView.sd_setImage(with: URL.init(string:model.poster!), placeholderImage: UIImage.init(named: "img_ph_460")),


这个时候发现,失败了就不会再加载了,除非退出应用,所有的东西重新来过一次,但是这么猛的库应该不纯在这个问题,后来查找之后才发现,SDWebImage里面有个说明,如果加载某个图片的URL失败,SDWebImage会把这个地址加入一个黑名单,后面就不会再重新加载这个URL请求,所以才会一次失败,再也没有机会,解决的办法如下,写法为:


        albumImageView.sd_setImage(with: URL.init(string:model.poster!), placeholderImage: UIImage.init(named: "img_ph_460"), options: SDWebImageOptions.retryFailed),


即设置个option,让他加载失败的时候再次尝试,这样就解决了上述的问题



0 0