SDWebImage 应该iOS开发中最常用的图片框架之一,用于加载网络图片。
但是如果图片的格式是webp的格式的,加载图片失败:
调试错误:
Error Domain=SDWebImageErrorDomain Code=1001"Downloaded image has 0 pixels
如果SDWebImage版本为:4.4.3, 另外导入 pod 'SDWebImage/WebP' ,其他代码不需要变, 但是这个库需要引入 libwebp 才能加载webp,导入这个库的可能会出错,应为路径是找不到,这不科学,但很和谐。解决办法可以参考:https://www.jianshu.com/p/f97081867cf6
操蛋经历:
因为项目导入最新的 SDCycleScrollView;导入SDCycleScrollView会自动导入SDWebImage,因此把之前:pod 'SDWebImage' 注释掉,
pod install 其他库都正常,SDWebImage/WebP 出问题了。
报错:执行 pod update ---pod repo update ---甚至把.xcworkspace和.lock 删除等一番骚操作之后还是不行。libwebp 路径已经换成git路径
甚至有种卸载cocoapod,重新安装的冲动。
尝试无数次,每次都是错误:
[!] CocoaPods could not find compatible versions for pod "SDWebImage/WebP":
In Podfile:
SDWebImage/WebP
Specs satisfying the `SDWebImage/WebP` dependency were found, but they required a higher minimum deployment target.
为了不影响项目开发进度,我选择轻轻把这个问题放下,现在做其他开发,最后倒回来处理这个问题,以免影响这个项目的进度。实在不行还可以让后台不要返回webp格式的图片。但是这个问题我记载心里,空闲时就跑出来提示我要处理。经历一番屡败屡战+屡战屡败之后,它成为我的“心病”。
柳暗花明又一村:
其实我的目的只是要加载webp格式的图片而已,SDWebImage/WebP 只是SDWebImage的辅助工具(插件)可以帮我更快更好的实现,但是现在这个工具出问题,是不是可以考虑用其他工具。之前的失败都是在纠结SDWebImage/WebP的导入问题,在一个死胡同里转圈。重新分析问题:发现根源是升级SDWebImage。那么是不是可以从SDWebImage找到突破口呢?就像下象棋,谁将军找谁才能解决危机。因此重新查看SDWebImage的官方文档。
功夫不负有心人:
这个插件列表还有很多其他插件,文档都写的很清楚,比如gif,svg。因为项目里面用了svg格式的图片,稍微看了下,svg的插件最低适配iOS 13,只能放弃了。
进入这个链接,剩下的都不是问题,如何使用,都写的清清楚楚。
解决问题:
pod 'SDWebImageWebPCoder'
导入文件:
#import <SDWebImage/SDWebImage.h>
#import <SDWebImageWebPCoder/SDWebImageWebPCoder.h>
实现:这个可以写在AppDelegate.m 文件中。
SDImageWebPCoder*webPCoder = [SDImageWebPCodersharedCoder];
[[SDImageCodersManager sharedManager] addCoder:webPCoder];
运行项目发现webp格式的图片可以被加载了。
感悟:
1、碰到事情不要慌张
2、抓大放小、补缺补漏
3、仔细分析问题,“重定向”