1、问题出现过程
在项目中使用SDWebImage框架加载url图片时,发现一部分可以加载显示,一部分不可以加载显示。遇见这个问题,我当场就自闭了。
然后不得不去网上搜了一下解决方式,找到了以下几种方式:
-
通过打印error,来判断出现了什么问题,然后去解决。
-
通过试着去更新SDWebImage第三方框架,来判断是否是版本问题。
-
通过在options在设置SDWebImageAllowInvalidSSLCertificates来解决问题。
然后我挨个去试了以上几种方案,发现都不能解决我的问题。在浏览器上可以显示,在app项目上不能显示的问题。--------然后自闭一上午。
2、解决方案
然后自己认真比对可以显示的url照片和不可以显示的url照片,发现一个问题,无语了,忘记了url中有中文文字的影响了。
然后然后 去谷歌搜了一下,问题解决。
1.图片地址带有汉字
我们需要对汉字进行转码,方法:NSString * str = [imageUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
2.图片地址带有反斜杠
我们需要将反斜杠转成斜杠,方法:NSString * str1 = @"\\"; imageUrl = [imageUrl stringByReplacingOccurrencesOfString:str1 withString:@"/"]; 注意第二种处理方法是用"/"替换地址中的"\",然而字符串"\"不能直接使用,需要使用\\,因为\后带一些字符是转义字符。
3、总结
我是真的菜。~~~哭泣