iOS适配https(二)-- 黑魔法简单适配SDWebImage
前言
继续上篇的篇章。上篇讲述了SSL证书的配置以及AFNetworking的单向验证。这里我们讲解一下SDWebImage的配置。
SDWebImage本身是支持https的,所以我们要做的工作量并不是很大。
- (void)sd_setImageWithURL:(NSURL )url placeholderImage:(UIImage )placeholder options:(SDWebImageOptions)options;
options:SDWebImageAllowInvalidSSLCertificates
设置即可
方法一
这种方法是最笨的,那就是逐个替换,将所有用到sdwebimage方法的地方全都设置一遍,效率最低。属于大改项目。
方法二
直接到UIImageView+WebCache.m方法中将用到的几个方法都改动一下。1
2
3
4
5
6- (void)sd_setImageWithURL:(NSURL *)url {
[self sd_setImageWithURL:url placeholderImage:nil options:SDWebImageAllowInvalidSSLCertificates progress:nil completed:nil];
}
- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder {
[self sd_setImageWithURL:url placeholderImage:placeholder options:SDWebImageAllowInvalidSSLCertificates progress:nil completed:nil];
}
这样就可以全局设置好了,但是有个弊端。如果是使用cocoapods的,那么这样的修改无法同步到其他人的工程里,需要每个人都这样设置,而且库升级的话修改照样得继续。所以这个方法只是对于快捷而言试用,长远来说并不方便。所以重点是方法三,使用黑魔法。
方法三 – 黑魔法
采用黑魔法,并不改动三方库,写一个类别即可。长话短说,直接上代码。
UIImageView+JFHttps.h
1 | #import <UIKit/UIKit.h> |
UIImageView+JFHttps.m
1 | #import "UIImageView+JFHttps.h" |
UIImageView+JFHttps.h加入到全局
正常调用SDWebImage的方法即可,其他的都可以不用管,升级库照常升级。
给个tip:
https://cdn.pixabay.com/photo/2017/01/18/21/34/cyprus-1990939_1280.jpg
这是一个https的图片,方便大家测试
上一篇:
相关参考: